

# 使用 Amazon SDK 从多区域接入点中获取 Amazon S3 对象
<a name="s3_example_s3_GetObject_MRAP_section"></a>

以下代码示例显示如何从多区域接入点中获取对象。

------
#### [ Kotlin ]

**SDK for Kotlin**  
 查看 GitHub，了解更多信息。在 [Amazon 代码示例存储库](https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/kotlin/services/s3#code-examples)中查找完整示例，了解如何进行设置和运行。
将 S3 客户端配置为使用非对称 Sigv4（Sigv4a）签名算法。  

```
        suspend fun createS3Client(): S3Client {
            // Configure your S3Client to use the Asymmetric SigV4 (SigV4a) signing algorithm.
            val sigV4aScheme = SigV4AsymmetricAuthScheme(DefaultAwsSigner)
            val s3 = S3Client.fromEnvironment {
                authSchemes = listOf(sigV4aScheme)
            }
            return s3
        }
```
使用多区域接入点 ARN 而不是桶名称来检索对象。  

```
    suspend fun getObjectFromMrap(
        s3: S3Client,
        mrapArn: String,
        keyName: String,
    ): String? {
        val request = GetObjectRequest {
            bucket = mrapArn // Use the ARN instead of the bucket name for object operations.
            key = keyName
        }

        var stringObj: String? = null
        s3.getObject(request) { resp ->
            stringObj = resp.body?.decodeToString()
            if (stringObj != null) {
                println("Successfully read $keyName from $mrapArn")
            }
        }
        return stringObj
    }
```
+  有关更多信息，请参阅 [Amazon SDK for Kotlin 开发人员指南](https://docs.amazonaws.cn/sdk-for-kotlin/latest/developer-guide/use-services-s3-mrap.html)。
+  有关 API 详细信息，请参阅《Amazon SDK for Kotlin API Reference》**中的 [GetObject](https://sdk.amazonaws.com/kotlin/api/latest/index.html)。

------

有关 Amazon SDK 开发人员指南和代码示例的完整列表，请参阅 [使用 Amazon SDK 通过 Amazon S3 进行开发](sdk-general-information-section.md)。本主题还包括有关入门的信息以及有关先前的 SDK 版本的详细信息。