如何使用 VPC 端点 URL 将文件上传到 Amazon S3 存储桶?

How can I upload a file to an Amazon S3 bucket using the VPC endpoint URL?

我正在尝试使用 VPC 端点将文件加载到 Amazon S3 存储桶中。我可以使用此代码上传文件:

TransferUtility utility = new TransferUtility(awsAccessKey, awsSecretKey, Amazon.RegionEndpoint.USWest1);
TransferUtilityUploadRequest request = new TransferUtilityUploadRequest();
request.BucketName = "test" + @"/" + S3Path;
request.InputStream = st;

utility.Upload(request);

我被要求使用 VPC 端点获取 S3 客户端,然后上传存储桶。

经过搜索,我在Java中找到了这个:

String endpoint = Toolkit.getParameter("s3-vpc-endpoint");
S3Client s3Client = S3Client.builder().region(Region.US_WEST_2)
        .endpointOverride(URI.create(endpoint))
        .build();

C# 中的等价物是什么?

网关端点是a target for a route in your route table用于发往 Amazon S3 或 DynamoDB 的流量的网关。

网关端点在基础架构级别工作,因此无需在应用程序本身内执行任何操作。

根据docs

If you've already set up access to your Amazon S3 resources from your VPC, you can continue to use Amazon S3 DNS names to access those resources after you've set up an endpoint.

您引用的代码可能指的是 Amazon S3 端点,其中还包括存储桶名称,例如mybucket.s3.eu-west-1.amazonaws.com.

当您在代码中指定区域和存储桶名称时,您就可以开始了。