springboot整合七牛云oos详细代码
时间: 2023-10-01 07:05:30 浏览: 111
springboot整合代码
1. 添加七牛云OSS依赖
在pom.xml文件中添加以下依赖:
```
<dependency>
<groupId>com.qiniu</groupId>
<artifactId>qiniu-java-sdk</artifactId>
<version>[7.2.0, 7.999.999]</version>
</dependency>
```
2. 配置七牛云OSS
在application.properties文件中添加以下配置:
```
# 七牛云OSS配置
qiniu.accessKey=your_access_key
qiniu.secretKey=your_secret_key
qiniu.bucket=your_bucket_name
qiniu.pathPrefix=http://your_domain_name/
qiniu.zone=auto
```
其中,`accessKey`和`secretKey`是七牛云账号的Access Key和Secret Key,`bucket`为存储空间名称,`pathPrefix`为访问域名前缀,`zone`为存储区域,这里设置为自动选择。
3. 创建七牛云OSS服务类
创建一个名为`QiniuOSSService`的类,用于封装七牛云OSS的操作方法。
```
@Service
public class QiniuOSSService {
@Value("${qiniu.accessKey}")
private String accessKey;
@Value("${qiniu.secretKey}")
private String secretKey;
@Value("${qiniu.bucket}")
private String bucket;
@Value("${qiniu.pathPrefix}")
private String pathPrefix;
private Configuration configuration = new Configuration(Zone.autoZone());
private UploadManager uploadManager = new UploadManager(configuration);
/**
* 上传文件
*
* @param file 文件
* @return 文件URL
* @throws QiniuException 七牛云异常
*/
public String uploadFile(File file) throws QiniuException {
Auth auth = Auth.create(accessKey, secretKey);
String token = auth.uploadToken(bucket);
Response response = uploadManager.put(file, null, token);
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
return pathPrefix + putRet.key;
}
/**
* 删除文件
*
* @param key 文件key
* @throws QiniuException 七牛云异常
*/
public void deleteFile(String key) throws QiniuException {
Auth auth = Auth.create(accessKey, secretKey);
BucketManager bucketManager = new BucketManager(auth, configuration);
bucketManager.delete(bucket, key);
}
}
```
其中,`uploadFile`方法用于上传文件到七牛云OSS并返回文件URL,`deleteFile`方法用于删除文件。
4. 使用七牛云OSS服务类
在需要上传或删除文件的地方,注入`QiniuOSSService`并调用相应的方法即可。例如:
```
@RestController
public class FileController {
@Autowired
private QiniuOSSService qiniuOSSService;
@PostMapping("/upload")
public String uploadFile(@RequestParam("file") MultipartFile file) throws IOException, QiniuException {
File tempFile = File.createTempFile("temp", null);
file.transferTo(tempFile);
String fileUrl = qiniuOSSService.uploadFile(tempFile);
tempFile.delete();
return fileUrl;
}
@DeleteMapping("/delete")
public void deleteFile(@RequestParam("key") String key) throws QiniuException {
qiniuOSSService.deleteFile(key);
}
}
```
这里提供了一个上传和删除文件的示例接口,上传的文件可以是`MultipartFile`类型,需要先将其转换为`File`类型。
阅读全文