Spring Boot配合七牛云实现文件上传
import com.qiniu.http.Response;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.Region;
import com.qiniu.storage.UploadManager;
import com.qiniu.util.Auth;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
@RestController
public class FileUploadController {
// 设置好访问七牛云的域名、BUCKET等信息
private String ACCESS_KEY = "你的AccessKey";
private String SECRET_KEY = "你的SecretKey";
private String BUCKET = "你的bucket名字";
private String DOMAIN = "你的七牛云设置的外链域名";
// 密钥配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
// 创建上传对象
UploadManager uploadManager = new UploadManager(new Configuration(Region.region0()));
@PostMapping("/upload")
public String upload(@RequestParam("file") MultipartFile file) {
if (file.isEmpty()) {
return "文件为空";
}
// 默认情况下,当前上传空间的存储区域是根据上传的空间名进行选择的
// 指定上传的Region, 当Bucket在某个Region, 但上传的时候不指定Region时,会使用默认的Region
// 这里指定为北京区
// uploadManager.put(file.getInputStream(), null, token);
try {
// 生成上传凭证,然后即可在客户端进行上传
String token = auth.uploadToken(BUCKET);
// 指定文件的名称
String key = file.getOriginalFilename();
Response response = uploadManager.put(file.getInputStream(), key, token, null, null);
// 解析上传成功的结果
DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);
System.out.println(putRet.key);
System.out.println(putRet.hash);
return "上传成功";
} catch (Exception e) {
e.printStackTrace();
return "上传失败";
}
}
}
这段代码实现了一个Spring Boot的RESTful API,用于处理文件上传到七牛云的请求。它使用了七牛云的Java SDK进行文件上传操作。在实际使用时,需要替换掉ACCESS_KEY
, SECRET_KEY
, BUCKET
, 和 DOMAIN
为你自己的七牛云账户信息。
评论已关闭