首頁  >  文章  >  Java  >  如何使用Java與七牛雲KODO進行物件儲存與管理

如何使用Java與七牛雲KODO進行物件儲存與管理

WBOY
WBOY原創
2023-07-06 20:01:571295瀏覽

如何使用Java與七牛雲KODO進行物件儲存與管理

一、介紹
隨著雲端運算與大數據的快速發展,雲端儲存成為越來越重要的一環。七牛雲KODO作為國內知名的對象儲存平台,提供了強大的儲存和管理功能,廣泛應用於網站、手機應用、視訊直播等領域。本文將介紹如何使用Java與七牛雲KODO進行物件儲存與管理,並給予對應的程式碼範例。

二、 建立七牛雲端帳號與儲存空間

  1. 造訪七牛雲端官網(https://www.qiniu.com/),點選「註冊」按鈕建立帳號。
  2. 登入七牛雲端控制台,建立一個儲存空間。在控制台的“儲存空間”頁面,點擊“新空間”,填寫對應的資訊並儲存。這裡以儲存空間名為"mybucket"為例。

三、 新增依賴函式庫
在Java專案的pom.xml檔案中加入以下依賴函式庫:

<dependency>
    <groupId>com.qiniu</groupId>
    <artifactId>qiniu-java-sdk</artifactId>
    <version>7.4.0</version>
</dependency>

四、 設定七牛雲端存取金鑰
在Java專案的設定檔中新增七牛雲的存取金鑰,如下所示:

qiniu.accessKeyId=your_access_key_id
qiniu.secretKey=your_secret_key
qiniu.bucket=mybucket
qiniu.domain=http://your_domain_url

五、 上傳檔案到七牛雲KODO

  1. 建立一個名為QiniuUtils的工具類,並新增以下程式碼:
import com.qiniu.util.Auth;
import com.qiniu.util.StringMap;
import com.qiniu.util.UrlSafeBase64;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;
import org.json.JSONObject;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.UUID;

public class QiniuUtils {
    private static final String ACCESS_KEY = ConfigUtil.getProperty("qiniu.accessKeyId");
    private static final String SECRET_KEY = ConfigUtil.getProperty("qiniu.secretKey");
    private static final String BUCKET_NAME = ConfigUtil.getProperty("qiniu.bucket");
    private static final String DOMAIN = ConfigUtil.getProperty("qiniu.domain");

    // 上传文件到七牛云KODO
    public static String uploadFile(String filePath) throws IOException {
        String key = UUID.randomUUID().toString(); // 自动生成唯一的key
        String uploadToken = getUploadToken(); // 获取上传凭证

        OkHttpClient client = new OkHttpClient();
        // 读取文件内容
        byte[] data = Files.readAllBytes(Paths.get(filePath));
        RequestBody requestBody = RequestBody.create(MediaType.parse("application/octet-stream"), data);

        // 构建请求
        Request request = new Request.Builder()
                .url("http://upload.qiniu.com/putb64/" + -1 + "/key/" + UrlSafeBase64.encodeToString(key))
                .header("Content-Type", "application/octet-stream")
                .header("Authorization", "UpToken " + uploadToken)
                .post(requestBody)
                .build();

        // 发送请求
        Response response = client.newCall(request).execute();
        if (response.isSuccessful()) {
            JSONObject jsonObject = new JSONObject(response.body().string());
            String url = DOMAIN + "/" + jsonObject.getString("key");
            return url;
        } else {
            throw new IOException("Unexpected code " + response);
        }
    }

    // 获取上传凭证
    private static String getUploadToken() {
        Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
        return auth.uploadToken(BUCKET_NAME);
    }
}
  1. 在需要上傳檔案的地方呼叫QiniuUtils.uploadFile()方法,如下所示:
public class MainApp {
    public static void main(String[] args) throws IOException {
        String filePath = "path/to/file.jpg";
        String url = QiniuUtils.uploadFile(filePath);
        System.out.println("上传成功,文件URL为:" + url);
    }
}

六、 下載檔案

  1. 在QiniuUtils類別中加入以下程式碼:
// 下载文件
public static void downloadFile(String key, String savePath) throws IOException {
    String downloadUrl = DOMAIN + "/" + key;
    OkHttpClient client = new OkHttpClient();
    Request request = new Request.Builder()
            .url(downloadUrl)
            .build();
    Response response = client.newCall(request).execute();
    if (response.isSuccessful()) {
        byte[] data = response.body().bytes();
        Files.write(Paths.get(savePath), data);
        System.out.println("下载成功,文件保存路径为:" + savePath);
    } else {
        throw new IOException("Unexpected code " + response);
    }
}
  1. 在需要下載檔案的地方呼叫QiniuUtils.downloadFile()方法,如下所示:
public class MainApp {
    public static void main(String[] args) throws IOException {
        String key = "file.jpg";
        String savePath = "path/to/save/file.jpg";
        QiniuUtils.downloadFile(key, savePath);
    }
}

七、 刪除檔案
在QiniuUtils類別中加入以下程式碼:

// 删除文件
public static void deleteFile(String key) throws IOException {
    Auth auth = Auth.create(ACCESS_KEY, SECRET_KEY);
    Configuration cfg = new Configuration(Zone.zone0());
    BucketManager bucketManager = new BucketManager(auth, cfg);
    bucketManager.delete(BUCKET_NAME, key);
    System.out.println("删除成功");
}

在需要刪除檔案的地方呼叫QiniuUtils.deleteFile()方法,如下所示:

public class MainApp {
    public static void main(String[] args) throws IOException {
        String key = "file.jpg";
        QiniuUtils.deleteFile(key);
    }
}

以上是關於如何使用Java與七牛雲KODO進行物件儲存和管理的介紹和範例程式碼。透過這些程式碼,我們可以輕鬆地上傳、下載和刪除文件,實現對雲端儲存的基本操作。希望本文能對您有幫助!

以上是如何使用Java與七牛雲KODO進行物件儲存與管理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn