七牛云上传图片

public class Upload {
public final static Upload me = new Upload();
//设置好账号的ACCESS_KEY和SECRET_KEY
public static final String ACCESS_KEY = “xxxxxxxxxxx”;
public static final String SECRET_KEY = “xxxxxx”;
//要上传的空间
public static final String PICTURE_BUCKET = “xxx”;
//bind domain
public static final String DOMAIN = “xxxxx”;

private Auth auth;
private UploadManager uploadManager;

private void configUploadManager() {
    //密钥配置
    auth = Auth.create(ACCESS_KEY, SECRET_KEY);

    ///指定上传的Zone的信息//
    //第一种方式: 指定具体的要上传的zone
    //注:该具体指定的方式和以下自动识别的方式选择其一即可
    //要上传的空间(bucket)的存储区域为华东时
    // Zone z = Zone.zone0();
    //要上传的空间(bucket)的存储区域为华北时
    // Zone z = Zone.zone1();
    //要上传的空间(bucket)的存储区域为华南时
    // Zone z = Zone.zone2();

    //第二种方式: 自动识别要上传的空间(bucket)的存储区域是华东、华北、华南。
    Zone z = Zone.autoZone();
    Configuration c = new Configuration(z);

    //创建上传对象
    uploadManager = new UploadManager(c);
}

public Upload() {
    configUploadManager();
}

//简单上传,使用默认策略,只需要设置上传的空间名就可以了
public String getUpToken(){
    return auth.uploadToken(PICTURE_BUCKET);
}

public HashMap<String,Object> getUploadInfo(){
    HashMap<String,Object> upload_info = new HashMap<String, Object>();
    upload_info.put("bucket",PICTURE_BUCKET);
    upload_info.put("token",getUpToken());
    upload_info.put("domain",DOMAIN);
    return upload_info;
}

/**
 * 上传图片
 * @param filePath 图片所在路径
 * @param key 图片key
 * @return filename 图片在七牛云上的文件名
 * @throws IOException
 */
public String upload(String filePath, String key) throws IOException {
    try {
        //调用put方法上传
        Response res = uploadManager.put(filePath, key, getUpToken());
        //打印返回的信息
        System.out.println(res.bodyString());
        return (String) res.jsonToMap().get("key");
    } catch (QiniuException e) {
        Response r = e.response;
        // 请求失败时打印的异常的信息
        System.out.println(r.toString());
        try {
            //响应的文本信息
            System.out.println(r.bodyString());
        } catch (QiniuException e1) {
            //ignore
        }
        return null;
    }
}

//公开空间
public String getDownloadPublicFileUrl(String fileName){
// String fileName = “xxxx.pdf”;
String domainOfBucket = “xxxx”;
String encodedFileName = fileName;
// try {
// encodedFileName = URLEncoder.encode(fileName, “utf-8”);
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
String finalUrl = String.format(“%s/%s”, domainOfBucket, encodedFileName);
System.out.println(finalUrl);
return finalUrl;
}

//私有空间
public String getDownloadPrivateFileUrl(String fileName){
    String domainOfBucket = "http://xxxxx";
    String encodedFileName = fileName;

// try {
// encodedFileName = URLEncoder.encode(fileName, “utf-8”);
// } catch (UnsupportedEncodingException e) {
// e.printStackTrace();
// }
String publicUrl = String.format(“%s/%s”, domainOfBucket, encodedFileName);
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
long expireInSeconds = 3600;//1小时,可以自定义链接过期时间
String finalUrl = auth.privateDownloadUrl(publicUrl, expireInSeconds);
System.out.println(finalUrl);
return finalUrl;
}

/**
 * 获取七牛上传信息
 * GET
 * /uploadInfo
 * return
 */
@ActionKey("/uploadInfo")
@Before({GetInterceptor.class})
public void uploadInfo(){
    respondSuccess(Upload.me.getUploadInfo());
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值