如何使用Java與七牛雲KODO進行物件儲存與管理
一、介紹
隨著雲端運算與大數據的快速發展,雲端儲存成為越來越重要的一環。七牛雲KODO作為國內知名的對象儲存平台,提供了強大的儲存和管理功能,廣泛應用於網站、手機應用、視訊直播等領域。本文將介紹如何使用Java與七牛雲KODO進行物件儲存與管理,並給予對應的程式碼範例。
二、 建立七牛雲端帳號與儲存空間
三、 新增依賴函式庫
在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
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); } }
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); } }
六、 下載檔案
// 下载文件 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); } }
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中文網其他相關文章!