七牛云删除java_java七牛云文件上传, 删除

本文介绍了如何使用七牛云Java SDK进行文件上传和删除操作。首先,注册七牛云账号并创建存储空间及配置域名。接着,在Java项目中引入七牛SDK,设置访问密钥,并实现上传、获取上传凭证、删除文件的方法。示例代码包括上传图片到七牛云以及根据文件名删除文件的功能。
摘要由CSDN通过智能技术生成

前言

七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化PaaS服务。围绕富媒体场景,七牛先后推出了对象存储,融合CDN加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

第一步:去七牛云注册账号,然后去控制台创建存储空间

43ea17ea38a0bf8cc608ac36ecef5e0a.png

第二步:在七牛云创建完空间后,给空间配置访问域名

dbb0481f4dc6d54cc0154478cbd97165.png

dae65f96f99718a21ac08857598b9032.png

添加完域名后点击确定,此时域名添加成功并复制CNAME

391f67c55efc7a10d3c0a0ab8ef47444.png

第三步:给域名添加记录值,选择CNAME类型,此时七牛云空间就可以访问了

4609ebeb0e4101ffcd5d3eb560418465.png

然后再个人中心中复制需要的秘钥

a573e1a9bedeac63e92607552b13ab45.png

第四步:在Java项目的maven中添加两个七牛jar包

67cd8312b1caff3411bc95e072e1d94c.png

填写工具类

import com.alibaba.fastjson.JSONObject;

import com.qiniu.common.QiniuException;

import com.qiniu.common.Zone;

import com.qiniu.http.Response;

import com.qiniu.storage.BucketManager;

import com.qiniu.storage.Configuration;

import com.qiniu.storage.UploadManager;

import com.qiniu.util.Auth;

import org.springframework.stereotype.Service;

import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;

import java.util.UUID;

@Service

public class Qiniu {

// 设置好账号的ACCESS_KEY和SECRET_KEY

private String ACCESS_KEY = "####################";

private String SECRET_KEY = "####################";

// 要上传的空间

String bucketname = "###";

// 密钥配置

Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

// 构造一个带指定Zone对象的配置类,不同的七云牛存储区域调用不同的zone

Configuration cfg = new Configuration(Zone.zone0());

// ...其他参数参考类注释

UploadManager uploadManager = new UploadManager(cfg);

// 测试域名,只有30天有效期

private static String QINIU_IMAGE_DOMAIN = "http://###############/";

// 简单上传,使用默认策略,只需要设置上传的空间名就可以了

public String getUpToken() {

return auth.uploadToken(bucketname);

}

public String saveImage(MultipartFile file) throws IOException {

try {

int dotPos = file.getOriginalFilename().lastIndexOf(".");

if (dotPos < 0) {

return null;

}

String fileExt = file.getOriginalFilename().substring(dotPos + 1).toLowerCase();

// 判断是否是合法的文件后缀

if (!isFileAllowed(fileExt)) {

return null;

}

String fileName = UUID.randomUUID().toString().replaceAll("-", "") + "." + fileExt;

// 调用put方法上传

Response res = uploadManager.put(file.getBytes(), fileName, getUpToken());

// 打印返回的信息

if (res.isOK() && res.isJson()) {

// 返回这张存储照片的地址

return QINIU_IMAGE_DOMAIN + JSONObject.parseObject(res.bodyString()).get("key");

} else {

return null;

}

} catch (QiniuException e) {

// 请求失败时打印的异常的信息

return null;

}

}

// 图片允许的后缀扩展名

private static String[] IMAGE_FILE_EXTD = new String[] { "png", "bmp", "jpg", "jpeg","pdf" };

private static boolean isFileAllowed(String fileName) {

for (String ext : IMAGE_FILE_EXTD) {

if (ext.equals(fileName)) {

return true;

}

}

return false;

}

//删除文件

public int deleteFileFromQiniu(String fileName){

//构造一个带指定Zone对象的配置类

Configuration cfg = new Configuration(Zone.zone0());

String key = fileName;

Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

BucketManager bucketManager = new BucketManager(auth, cfg);

try {

Response delete = bucketManager.delete(bucketname, key);

return delete.statusCode;

} catch (QiniuException ex) {

//如果遇到异常,说明删除失败

ex.printStackTrace();

System.err.println(ex.code());

System.err.println(ex.response.toString());

}

return -1;

}

}

/**

* 七牛云上传

* @param file

* @return

*/

@PostMapping("saveImage")

@ResponseBody

public Object saveImage(@RequestParam("file")MultipartFile file){

if (file.isEmpty()){

return "error";

}

try {

Map map2 = new HashMap<>();

Map map = new HashMap<>();

map.put("code", 0);

map.put("msg", "");

map2.put("src", qiniu.saveImage(file));

map.put("data", map2);

return map;

}catch (Exception e){

e.printStackTrace();

}

return"fail";

}

/**

* 七牛云删除

* @param fileName

* @return

*/

@PostMapping("deleteImage")

@ResponseBody

public int deleteImage(String fileName){

return qiniu.deleteFileFromQiniu(fileName);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值