Amazon S3 .Net SDK

3
我正在尝试使用awssdk将备份上传到亚马逊S3,所有操作都非常顺利,但仅限于美国服务器。由于我位于欧盟,我想使用欧盟服务器,但是当我尝试执行任何与bucket相关的操作(例如ListObjects)时,它会在一段时间后失败,并显示以下消息:

Maximum number of retry attempts reached : 3

awssdk使用的URL是https://s3.amazonaws.com/algorim.eutest/,这似乎是个问题,因为它返回以下XML内容:
<Error>
    <Code>PermanentRedirect</Code>
    <Message>
        The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.
    </Message>
    <RequestId>89A688C2DF03C1BC</RequestId>
    <Bucket>algorim.eutest</Bucket>
    <HostId>
        AN27BUv30i4UCE4WkQqgqGUdNm12OaDQkB+/r0cKowb2VOduniIOZXYIngvE2lSj
    </HostId>
    <Endpoint>algorim.eutest.s3.amazonaws.com</Endpoint>
</Error>

而同样类型的URL在美国服务器上会导致

<Error>
    <Code>AccessDenied</Code>
    <Message>Access Denied</Message>
    <RequestId>EE2307DE5E5815FD</RequestId>
    <HostId>
        J0tmOtg9xvUvC2T1CRvQcU2MJdOsXBCRYJexvhIgpbDwPfc3PpNCUNv/USatebyy
    </HostId>
</Error>

预期答案是什么?基本上看起来 .net awssdk 无法遵循重定向并退出。有没有什么方法可以避免编写自己的代码或使用第三方 Amazon Web Service 包装器而解决此问题?

使用的 awssdk 版本为 1.3.13.0

2个回答

2

据我理解,您需要使用欧盟特定的终端节点(s3-eu-west-1.amazonaws.com)才能处理欧盟数据中心的数据。


0

请查看此篇文章,其中提供了完整的代码示例,展示如何设置欧盟特定的端点以及如何找到它们。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接