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

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

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

本主題詳細描述將 Amazon S3 URIs 從第 1 版 (v1) 剖析為第 2 版 (v2.) 的變更。

高階變更

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

變更 v1 v2

Maven 相依性

<dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>aws-java-sdk-bom</artifactId> <version>1.12.5871</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>com.amazonaws</groupId> <artifactId>s3</artifactId> </dependency> </dependencies>
<dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>bom</artifactId> <version>2.27.212</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependencies> <dependency> <groupId>software.amazon.awssdk</groupId> <artifactId>s3</artifactId> </dependency> </dependencies>
套件名稱 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<String> bucket = s3Uri.bucket();
擷取金鑰。
String key = s3Uri.getKey();
Optional<String> key = s3Uri.key();
擷取區域。
String region = s3Uri.getRegion();
Optional<Region> 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<String> versionId = s3Uri.firstMatchingRawQueryParameter("versionId");
擷取查詢參數。 N/A
Map<String, List<String>> queryParams = s3Uri.rawQueryParameters();

行為變更

URL 編碼

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

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