package com.mindskip.xzs.service.impl; import com.mindskip.xzs.configuration.property.QnConfig; import com.mindskip.xzs.configuration.property.SystemConfig; import com.mindskip.xzs.service.FileUpload; import com.google.gson.Gson; import com.qiniu.common.QiniuException; import com.qiniu.http.Response; import com.qiniu.storage.Configuration; import com.qiniu.storage.Region; import com.qiniu.storage.UploadManager; import com.qiniu.storage.model.DefaultPutRet; import com.qiniu.util.Auth; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.io.InputStream; @Service public class FileUploadImpl implements FileUpload { private final Logger logger = LoggerFactory.getLogger(FileUpload.class); private final SystemConfig systemConfig; @Autowired public FileUploadImpl(SystemConfig systemConfig) { this.systemConfig = systemConfig; } @Override public String uploadFile(InputStream inputStream, long size, String extName) { QnConfig qnConfig = systemConfig.getQn(); Configuration cfg = new Configuration(Region.region2()); UploadManager uploadManager = new UploadManager(cfg); Auth auth = Auth.create(qnConfig.getAccessKey(), qnConfig.getSecretKey()); String upToken = auth.uploadToken(qnConfig.getBucket()); try { Response response = uploadManager.put(inputStream, null, upToken, null, null); DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class); return qnConfig.getUrl() + "/" + putRet.key; } catch (QiniuException ex) { logger.error(ex.getMessage(), ex); } return null; } }