Java 代碼實現七牛云存儲圖片

SylArmenta 8年前發布 | 3K 次閱讀 Java

前言

項目想把圖片上傳到七牛云存儲上,筆者把七牛最簡單的用法示范一下,方便初學者。文章如有錯誤,歡迎各位指出。

http://blog.csdn.net/never_cxb/article/details/50539040

比如上面的 beautiful girl 圖片的 url 是http://img.blog.csdn.net/20160119111734404

我們最終用代碼上傳到七牛圖床后,七牛云存儲的 url 為 http://7xq7ik.com1.z0.glb.clouddn.com/testimagea

本文地址 http://blog.csdn.net/never_cxb/article/details/50534859 轉載請注明出處

準備工作

  1. 注冊一個七牛賬戶
    網址 https://portal.qiniu.com/signup?code=3lpzf1unpyr0y

  2. 登錄七牛開發者自助平臺,查看 Access Key 和 Secret Key (這兩個 Key 代碼會用到)

    http://blog.csdn.net/never_cxb/article/details/50539040

下載七牛依賴 jar 包

新建空間

圖片會上傳到某個空間里,代碼里會用到空間名。

http://blog.csdn.net/never_cxb/article/details/50539040

代碼

我們的項目需求是抓取圖片,
輸入圖片原始的的 url,然后利用代碼抓取到七牛圖床上,返回圖片在七牛上的 url。
首先定義變量存放你的 Key 和空間名。

public static final String ACCESS_KEY = "******"; // 你的access_key
public static final String SECRET_KEY = "******"; // 你的secret_key
public static final String BUCKET_NAME = "******"; // 你的secret_key
//獲取到 Access Key 和 Secret Key 之后,您可以按照如下方式進行密鑰配置
Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);

//獲取空間管理器
BucketManager bucketManager = new BucketManager(auth);
try {

    // 要求url可公網正常訪問BucketManager.fetch(url, bucketName, key);
    // @param url 網絡上一個資源文件的URL
    // @param bucketName 空間名稱
    // @param key 空間內文件的key[唯一的]
    DefaultPutRet putret = bucketManager.fetch(originalUrl, BUCKET_NAME, "testimage");

    System.out.println(putret.key);
    System.out.println("succeed upload image");
} catch (QiniuException e1) {
    e1.printStackTrace();
}

代碼思路很簡單,根據 key 獲取到空間管理器,再指定圖片的原始 url、空間名、圖片的 key,就可以把圖片上傳到七牛上了

在七牛的空間內容管理部分可以看到圖片已經上傳好了,新的 url 為 http://7xq7ik.com1.z0.glb.clouddn.com/testimage
blog.csdn.net/never_cxb

那么問題來了,如何獲取圖片新的 url 呢?總不能每次都通過瀏覽器訪問七牛的網站,如何在代碼里獲取我們圖片在七牛上的 url 呢?

域名+key 獲取新的 url

還記得剛才的代碼里我們給圖片指定了 key 嗎,只是圖片在七牛空間里的唯一表示。剛才我們指定的 key 為testimage,看新的圖片 url 為http://7xq7ik.com1.z0.glb.clouddn.com/testimage,新url就是剛才的 key 結尾的。

前面一大串的字符是七牛給我們的默認域名,你也可以自定義域名。

blog.csdn.net/never_cxb

那么代碼思路也很簡單,定義一個變量存放空間的域名,然后域名拼接圖片的 key 就得到圖片上傳后的 url。

private static final String BUCKET_HOST_NAME = "7xq7ik.com1.z0.glb.clouddn.com";  
public String uploadByUrl(String originalUrl) {
        //...
        String imageKey = "testimage";
        DefaultPutRet putret = bucketManager.fetch(originalUrl, BUCKET_NAME, imageKey);
        newUrl = BUCKET_HOST_NAME + "/" + imageKey;
        System.out.println(newUrl);
        System.out.println("succeed upload image");
    } catch (QiniuException e1) {
        e1.printStackTrace();
    }

    return null;
}

輸出信息

7xq7ik.com1.z0.glb.clouddn.com/testimage
succeed upload image

邀請注冊

如果您還沒有注冊七牛,可以通過我的邀請鏈接注冊 https://portal.qiniu.com/signup?code=3lpzf1unpyr0y,體驗用戶有一些免費空間。

參考文章

七牛操作工具類(Java版)

七牛關于JAVA SDK的各種Demo

 本文由用戶 SylArmenta 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!