首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 相關知識

Java 存取 Amazon S3 雲端儲存:使用開源 JetS3t 庫完整實戰

     編輯:Java 相關知識

Amazon S3 提供高可用、低成本、按需付費的物件儲存服務。本文示範如何在 Java 中使用開源 JetS3t 庫,透過 RESTful API 完成儲存桶建立、物件上傳、簽名 URL 產生等核心操作,並解析 S3 核心概念與成本優勢。

S3 核心概念對照

前置準備

  1. 註冊 AWS 帳號,取得 Access Key 與 Secret Key
  2. 下載 JetS3t 庫(Maven: org.jets3t:jets3t:0.9.4)

核心操作步驟

1. 建立服務連線

AWSCredentials cred = new AWSCredentials(accessKey, secretKey);
S3Service service = new RestS3Service(cred); // 採用 REST API

2. 建立/取得 Bucket

S3Bucket bucket = service.getOrCreateBucket("my-bucket");
// 設定公開讀寫
bucket.setAcl(AccessControlList.REST_CANNED_PUBLIC_READ_WRITE);

3. 上傳物件

S3Object obj = new S3Object(bucket, new File("/path/video.mp4"));
service.putObject(bucket, obj);

4. 產生時效簽名 URL(48 小時有效)

Date expiry = new Date(System.currentTimeMillis() + 48 * 3600 * 1000);
String url = S3Service.createSignedGetUrl(
    bucket.getName(), obj.getKey(), cred, expiry);
// https://my-bucket.s3.amazonaws.com/video.mp4?AWSAccessKeyId=...&Expires=...&Signature=...

進階功能

  • 列出所有 Bucket:service.listAllBuckets()
  • 設定物件 Metadata:obj.addMetadata("x-amz-meta-author", "me")
  • 指定儲存區域:建立 Bucket 時可選 US/EU,降低延遲
  • 自訂網域 (CNAME):將 assets.example.com 映射至 S3 URL,隱藏基礎設施

成本與架構優勢分析

傳統檔案系統S3 術語說明
檔案Object(物件)資料實體,含 Key、Value、Metadata
資料夾Bucket(儲存桶)頂層容器,名稱全域唯一,不可巢狀
路徑URIhttps://bucket.s3.amazonaws.com/key

適用場景

  • 使用者上傳圖片/影音(社群、電商)
  • 靜態資產分發(CDN 來源站)
  • 備份/歸檔資料
  • 流量不可預測的專案(新創、行銷活動)

JetS3t 封裝了底層 HTTP 細節,讓 Java 開發者以物件導向方式操作 S3,大幅降低整合門檻。配合 S3 的彈性計費與高可用特性,是現代雲原生應用儲存層的首選方案。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
項目自建儲存Amazon S3
初始投入硬體採購、機房、電力零,按使用付費
儲存成本固定成本、利用率低~$0.15/GB/月
流量成本頻寬合約、尖峰擴充難~$0.10/GB
可用性自建 HA 複雜99.99% 設計,多 AZ 複本
維運負擔高零,全託管