七牛云:上传图片+删除图片

上传图片到七牛云

示例:

	/**
     * 上传图片到服务器
     * @param upfile 文件对象
     * @return 图片链接  
     * @throws IOException s
     */
    public String uploadFile(MultipartFile upfile) throws IOException {
        InputStream inputStream = (InputStream) upfile.getInputStream();
        String fileName = upfile.getOriginalFilename();//获取文件名
        fileName = getFileName(fileName);
        fileName =  group + "/" + fileName;
        // uploadQNImg() 方法代码在下方
        String path = uploadQNImg(inputStream, fileName); //这个path是可以直接打开的图片链接,可以直接存储到数据库中
        //System.out.println("七牛云返回的图片链接:" + path);
        return path;
    }
    //在文件名后缀前加一个时间戳,防止图片重名
    private String getFileName(String fileName) {
        int index = fileName.lastIndexOf(".");
        final SimpleDateFormat sDateFormate = new SimpleDateFormat("yyyymmddHHmmss");  //设置时间格式
        String nowTimeStr = sDateFormate.format(new Date()); // 当前时间
        fileName = fileName.substring(0, index) + "_" + nowTimeStr + fileName.substring(index);
        return fileName;
    }

	/**
     * 删除服务器图片
     * @param key key为不加域名的在七牛云中的图片的名称
     * 如:http://qlwdwvwug.hn-bkt.clouddn.com/33_20212604132639.jpg
     * key为 33_20212604132639.jpg
     */
     public void deleteFile(String key){
     //deleteFile()方法在下方
     	deleteFile(String key);
	}
	

上传 uploadQNImg(InputStream file, String key)
and
删除 deleteFile(String key) 具体实现方法:

import com.google.gson.Gson;
import com.qiniu.common.QiniuException;
import com.qiniu.http.Response;
import com.qiniu.storage.BucketManager;
import com.qiniu.storage.Configuration;
import com.qiniu.storage.UploadManager;
import com.qiniu.storage.model.DefaultPutRet;
import com.qiniu.util.Auth;
import java.io.InputStream;

/**
 * 七牛云图片操作工具类, 写在服务端
 */
public class QiniuUtil {

    // 设置需要操作的账号的AK和SK
    private static final String ACCESS_KEY = "填充";
    private static final String SECRET_KEY = "填充";

    // 要上传的空间名称
    private static final String BUCKETNAME = "填充";

    // 密钥
    private static final Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

    // 外链默认域名
    private static final String DOMAIN = "http://填充";

    //组名
    private static String group = "可有可无";

    /**
     * 将图片上传到七牛云
     */
    public static String uploadQNImg(InputStream file, String key) {

        UploadManager uploadManager = new UploadManager(new Configuration());// 生成上传凭证,然后准备上传
        try {
            Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
            String upToken = auth.uploadToken(BUCKETNAME);
            try {
                Response response = uploadManager.put(file, key, upToken, null, null);
                // 解析上传成功的结果
                DefaultPutRet putRet = new Gson().fromJson(response.bodyString(), DefaultPutRet.class);

                String returnPath = DOMAIN +"/"+ putRet.key;
                // 这个returnPath是获得到的外链地址,通过这个地址可以直接打开图片
                return returnPath;
            } catch (QiniuException ex) {
                Response r = ex.response;
                System.err.println(r.toString());
                try {
                    System.err.println(r.bodyString());
                } catch (QiniuException ex2) {
                    //ignore
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }
    
     
	/**
     * 通过key删除七牛云上的图片
     * key为不加域名的在七牛云中的图片的名称
     * 如:http://qlwdwvwug.hn-bkt.clouddn.com/33_20212604132639.jpg
     * key为 33_20212604132639.jpg
     */
    public void deleteFile(String key){
        //创建凭证
        Auth auth = Auth.create(accessKey, secretKey);
        BucketManager bucketManager = new BucketManager(auth, new Configuration());
        try {
            bucketManager.delete(bucket, key);
        } catch (QiniuException ex) {
            //如果遇到异常,说明删除失败
            System.err.println(ex.code());
            System.err.println(ex.response.toString());
        }
    }
}

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值