123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package com.kmall.common.oss;
- import com.kmall.common.utils.RRException;
- import com.qiniu.common.Zone;
- import com.qiniu.http.Response;
- import com.qiniu.storage.Configuration;
- import com.qiniu.storage.UploadManager;
- import com.qiniu.util.Auth;
- import org.apache.commons.io.IOUtils;
- import org.springframework.web.multipart.MultipartFile;
- import java.io.IOException;
- import java.io.InputStream;
- /**
- * 七牛云存储
- *
- * @author Scott
- * @email
- * @date 2017-03-25 15:41
- */
- public class QiniuCloudStorageService extends CloudStorageService {
- private UploadManager uploadManager;
- private String token;
- public QiniuCloudStorageService(CloudStorageConfig config) {
- this.config = config;
- //初始化
- init();
- }
- private void init() {
- uploadManager = new UploadManager(new Configuration(Zone.autoZone()));
- token = Auth.create(config.getQiniuAccessKey(), config.getQiniuSecretKey()).
- uploadToken(config.getQiniuBucketName());
- }
- @Override
- public String upload(MultipartFile file) throws Exception {
- String fileName = file.getOriginalFilename();
- String prefix = fileName.substring(fileName.lastIndexOf(".") + 1);
- return upload(file.getBytes(), getPath(config.getAliyunPrefix()) + "." + prefix);
- }
- @Override
- public String upload(byte[] data, String path) {
- try {
- Response res = uploadManager.put(data, path, token);
- if (!res.isOK()) {
- throw new RuntimeException("上传七牛出错:" + res.toString());
- }
- } catch (Exception e) {
- throw new RRException("上传文件失败,请核对七牛配置信息", e);
- }
- return config.getQiniuDomain() + "/" + path;
- }
- @Override
- public String upload(InputStream inputStream, String path) {
- try {
- byte[] data = IOUtils.toByteArray(inputStream);
- return this.upload(data, path);
- } catch (IOException e) {
- throw new RRException("上传文件失败", e);
- }
- }
- }
|