上传文件到七牛云并删除已上传文件

@Configuration
@ConfigurationProperties(prefix = "qiniu")
public class QiNiuConfig {

    private String accessKey;

    private String secretKey;

    /**  要上传的空间名 */
    private String bucket;

    /** 对应存储空间的访问域名 */
    private String path;

    /** 需要上传的文件所在的目录*/
    private String filePath;

    public String getFilePath() {
        return filePath;
    }

    public void setFilePath(String filePath) {
        this.filePath = filePath;
    }

    public String getAccessKey() {
        return accessKey;
    }

    public String getSecretKey() {
        return secretKey;
    }

    public String getBucket() {
        return bucket;
    }

    public String getPath() {
        return path;
    }

    public void setAccessKey(String accessKey) {
        this.accessKey = accessKey;
    }

    public void setSecretKey(String secretKey) {
        this.secretKey = secretKey;
    }

    public void setBucket(String bucket) {
        this.bucket = bucket;
    }

    public void setPath(String path) {
        this.path = path;
    }
}


/**
 * 
 * @param filePath 文件路径
 * @param qiNiuConfig 七牛云上传信息配置
 * @return
 */
public class QiNiuUtil {
    private static final Logger logger = LoggerFactory.getLogger(QiNiuUtil.class);

    public static Map<String, String> qiniuUpload(String filePath, QiNiuConfig qiNiuConfig) {
        //上传到七牛后保存的文件名
        String key;
        //密钥配置
        Auth auth = Auth.create(qiNiuConfig.getAccessKey(), qiNiuConfig.getSecretKey());
        //自动识别要上传的空间的初村区域是华东、华北、华南
        Zone z = Zone.autoZone();
        com.qiniu.storage.Configuration c = new com.qiniu.storage.Configuration(z);
        //创建上传对象
        UploadManager uploadManager = new UploadManager(c);
        //获取upToken
        String upToken = auth.uploadToken(qiNiuConfig.getBucket());
        //开始时间
        long startTime = System.currentTimeMillis();
        String timeString = String.valueOf(startTime);
        Map<String, String> map = new HashMap<String, String>();
        File file = new File(filePath);
        if (file.exists()) {
            try {
                key = filePath.substring(filePath.lastIndexOf("/") + 1);
                Response response = uploadManager.put(filePath, key, upToken);
                map.put("state", "1");
                map.put("info", "上传七牛成功");
                map.put("fileName", key);
                map.put("qiniuUrl", qiNiuConfig.getPath() + "/" + key);
                logger.info("上传成功", response.body());
            } catch (QiniuException e) {
                map.put("state", "0");
                map.put("info", "上传七牛失败");
                logger.error("上传七牛异常={}");
                logger.error(e.getMessage(), e);
            } finally {
                //上传七牛完成后删除本地文件
                File deleteFile = new File(filePath);
                logger.info("删除: " + filePath);
                if (deleteFile.exists()) {
                    deleteFile.delete();
                }
            }
        }
        //结束时间
        long endTime = System.currentTimeMillis();
        logger.info("______________上传用时:={}", endTime - startTime + "ms");
        return map;
    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值