View a markdown version of this page

從第 1 版剖析 Amazon S3 URIs 到第 2 版的變更 - AWS SDK for Java 2.x

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

從第 1 版剖析 Amazon S3 URIs 到第 2 版的變更

本主題詳細說明剖析 Amazon S3 URIs 從第 1 版 (v1) 到第 2 版 (v2.) 的變更。

高階變更

若要開始剖析 v1 中的 S3 URI,您可以使用建構函數來執行個體化 AmazonS3URI 。在 v2 中,您在 執行個體parseUri()上呼叫 S3Utilities,以傳回 S3URI。

變更 v1   v2

Maven 相依性

com.amazonaws aws-java-sdk-bom 1.12.5871 pom import com.amazonaws s3
software.amazon.awssdk bom 2.27.212 pom import software.amazon.awssdk s3
套件名稱 com.amazonaws.services.s3 software.amazon.awssdk.services.s3
類別名稱 AmazonS3URI S3URI

1 最新版本。 2 最新版本。

API 變更

Behavior (行為) v1   v2
剖析 S3 URI。
URI uri = URI.create( "https://s3.amazonaws.com"); AmazonS3Uri s3Uri = new AmazonS3URI(uri, false);
S3Client s3Client = S3Client.create(); S3Utilities s3Utilities = s3Client.utilities(); S3Uri s3Uri = s3Utilities.parseUri(uri);
從 S3 URI 擷取儲存貯體名稱。
String bucket = s3Uri.getBucket();
Optional bucket = s3Uri.bucket();
擷取金鑰。
String key = s3Uri.getKey();
Optional key = s3Uri.key();
擷取區域。
String region = s3Uri.getRegion();
Optional region = s3Uri.region(); String region; if (s3Uri.region().isPresent()) { region = s3Uri.region().get().id(); }

擷取 S3 URI 是否為路徑樣式。

boolean isPathStyle = s3Uri.isPathStyle();
boolean isPathStyle = s3Uri.isPathStyle();
擷取版本 ID。
String versionId = s3Uri.getVersionId();
Optional versionId = s3Uri.firstMatchingRawQueryParameter("versionId");
擷取查詢參數。 N/A
Map> queryParams = s3Uri.rawQueryParameters();

行為變更

URL 編碼

v1 提供傳入旗標的選項,以指定 URI 是否應該以 URL 編碼。預設值為 true。

在 v2 中,不支援 URL 編碼。如果您使用具有預留或不安全字元的物件金鑰或查詢參數,則必須進行 URL 編碼。例如,您需要" "將空格取代為 %20。