

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 在解析 Amazon S3 时 URIs 从版本 1 到版本 2 的变化
<a name="migration-s3-uri-parser"></a>

本主题详细介绍了解析 Amazon S3 URIs 从版本 1 (v1) 到版本 2 (v2.) 时所做的更改。

## 高级别更改
<a name="migration-3-uri-parser-api-changes"></a>

在 v1 中，要开始解析 S3 URI，可使用构造函数对 `AmazonS3URI` 进行实例化。在 v2 中，在 `S3Utilities` 的实例上调用 `parseUri()`，以便返回 `S3URI`。


****  

| 更改 | v1 |  v2 | 
| --- | --- | --- | 
|    Maven 依赖项  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>com.amazonaws</groupId><br />            <artifactId>aws-java-sdk-bom</artifactId><br />            <version>1.12.5871</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency>  <br />        <groupId>com.amazonaws</groupId><br />        <artifactId>s3</artifactId><br />    </dependency><br /></dependencies></pre>  |  <pre><dependencyManagement><br />    <dependencies><br />        <dependency><br />            <groupId>software.amazon.awssdk</groupId><br />            <artifactId>bom</artifactId><br />            <version>2.27.212</version><br />            <type>pom</type><br />            <scope>import</scope><br />        </dependency><br />    </dependencies><br /></dependencyManagement><br /><dependencies><br />    <dependency><br />        <groupId>software.amazon.awssdk</groupId><br />        <artifactId>s3</artifactId><br />    </dependency><br /></dependencies></pre>  | 
| 软件包名称 | com.amazonaws.services.s3 | software.amazon.awssdk.services.s3 | 
| 类名 | [AmazonS3URI](https://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3URI.html) | [S3URI](https://sdk.amazonaws.com/java/api/latest/software/amazon/awssdk/services/s3/S3Uri.html) | 

1 [最新版本](https://central.sonatype.com/artifact/com.amazonaws/aws-java-sdk-bom)。2 [最新版本](https://central.sonatype.com/artifact/software.amazon.awssdk/bom)。

## API 更改
<a name="migration-3-uri-parser-api-changes"></a>


| 行为 | v1 |  v2 | 
| --- | --- | --- | 
| 解析 S3 URI。 |  <pre>URI uri = URI.create( "https://s3.amazonaws.com");<br /><br />AmazonS3Uri s3Uri = <br />    new AmazonS3URI(uri, false);</pre>  |  <pre>S3Client s3Client = S3Client.create();<br />S3Utilities s3Utilities =<br />    s3Client.utilities();<br /><br />S3Uri s3Uri =<br />    s3Utilities.parseUri(uri);</pre>  | 
| 从 S3 URI 检索存储桶名称。 |  <pre>String bucket = s3Uri.getBucket();</pre>  |  <pre>Optional<String> bucket = s3Uri.bucket();</pre>  | 
| 检索密钥。 |  <pre>String key = s3Uri.getKey();</pre>  |  <pre>Optional<String> key = s3Uri.key();</pre>  | 
| 检索区域。 |  <pre>String region = s3Uri.getRegion();</pre>  |  <pre>Optional<Region> region = s3Uri.region();<br /><br />String region;<br />if (s3Uri.region().isPresent()) {<br />    region = s3Uri.region().get().id();<br />}</pre>  | 
|  检索 S3 URI 是否为路径风格。  |  <pre>boolean isPathStyle = s3Uri.isPathStyle();</pre>  |  <pre>boolean isPathStyle = s3Uri.isPathStyle();</pre>  | 
| 检索版本 ID。 |  <pre>String versionId = s3Uri.getVersionId();</pre>  |  <pre>Optional<String> versionId = <br />    s3Uri.firstMatchingRawQueryParameter("versionId");</pre>  | 
| 检索查询参数。 | 不适用 |  <pre>Map<String, List<String>> queryParams =<br />    s3Uri.rawQueryParameters();</pre>  | 

### 行为更改
<a name="migration-s3-uri-parser-behavior-changes"></a>

#### URL 编码
<a name="migration-s3-uri-parser-behavior-changes-URLencoding"></a>

v1 提供了传入标志的选项，用于指定 URI 是否应进行 URL 编码。默认值为 `true`。

在 v2 中，不支持 URL 编码。如果您使用包含保留字符或不安全字符的对象键或查询参数，则必须对其进行 URL 编码。例如，您需要将空格 `" "` 替换为 `%20`。