簡體   English   中英

如何強制 AWS .NET SDK 為 S3 使用 us-east-1 區域端點而不是舊的全局端點?

[英]How do I force the AWS .NET SDK to utilize the us-east-1 regional endpoint for S3 rather than the legacy global endpoint?

在將 .Net AWS SDK 用於 S3 時,我注意到默認情況下,在與 us-east-1 中的存儲桶通信時,它使用的是舊的全局端點BUCKETNAME.s3.amazonaws.com而不是區域端點BUCKETNAME.s3.us-east-1.amazonaws.com

如何強制 SDK 使用區域端點?

Example.Net 6 代碼:

using Amazon;
using Amazon.Runtime;
using Amazon.S3;

AmazonS3Config config = new Amazon.S3.AmazonS3Config();
config.RegionEndpoint = RegionEndpoint.GetBySystemName("us-east-1");

Console.WriteLine($"S3 Client Service URL: {config.DetermineServiceURL()}");

S3 客戶端服務 URL: https://s3.amazonaws.com/

您需要告訴客戶端明確使用區域端點而不是默認的舊全局端點。

config.USEast1RegionalEndpointValue = S3UsEast1RegionalEndpointValue.Regional;

通過使用此更改修改代碼:

using Amazon;
using Amazon.Runtime;
using Amazon.S3;

AmazonS3Config config = new Amazon.S3.AmazonS3Config();
config.RegionEndpoint = RegionEndpoint.GetBySystemName("us-east-1");

config.USEast1RegionalEndpointValue = S3UsEast1RegionalEndpointValue.Regional;

Console.WriteLine($"S3 Client Service URL: {config.DetermineServiceURL()}");

您現在獲得區域端點服務 url:

S3 客戶端服務 URL: https ://s3.us-east-1.amazonaws.com/

AmazonS3Config對象上的USEast1RegionalEndpointValue屬性設置為S3UsEast1RegionalEndpointValue.Regional

這將強制將us-east-1 S3 請求路由到區域端點,而不是傳統的全局端點。

using Amazon;
using Amazon.Runtime;
using Amazon.S3;

AmazonS3Config config = new AmazonS3Config
{
    USEast1RegionalEndpointValue = S3UsEast1RegionalEndpointValue.Regional,
    RegionEndpoint = RegionEndpoint.USEast1
};

Console.WriteLine($"S3 Client Service URL: {config.DetermineServiceURL()}");
S3 Client Service URL: https://s3.us-east-1.amazonaws.com/

如果您只需將適當的區域傳遞給 S3 客戶端對象的構造函數,則可以更輕松地完成此操作。 例如:

_s3Client = new AmazonS3Client(RegionEndpoint.USEast1);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM