我正在尝试使用以下命令将目录备份到预先存在的 Amazon S3 存储桶:
duplicity --no-encryption system/ s3+http://MY_BUCKET_NAME/backup
但是,我不断收到以下错误:
S3CreateError: S3CreateError: 409 Conflict
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>BucketAlreadyOwnedByYou</Code><Message>Your previous request to create the named bucket succeeded and you already own it.</Message><BucketName>vacationlabs</BucketName><RequestId>3C1B8C49469E3374</RequestId><HostId>4dU1TKf3Td6R0yvG9MaLKCYvQfwaCpdM8FUcv53aIOh0LeJ6wtVHHduPSTqjDwt0</HostId></Error>
- S3 存储桶为空,没有
backup
目录 - 该存储桶位于新加坡地区
答案1
Duplicity 还支持以下格式的 Amazon S3 URL:
s3://host/bucket_name[/prefix]
您所在地区的 S3 端点在哪里host
,您可以在亚马逊的端点列表。
对于您来说,您需要的 URL 是:
s3://s3-ap-southeast-1.amazonaws.com/MY_BUCKET_NAME/backup
注意:
Duplicity 仍然只能在美国标准和欧盟地区创建存储桶,这意味着您需要手动创建存储桶(您已经拥有)。
对于美国标准以外的地区,您需要让 Duplicity 通过添加
--s3-use-new-style
到您的 Duplicity 命令行来使用亚马逊的“新样式”子域名存储桶寻址。
答案2
@mgorven 说得对,我会尽力修复这个问题。如果您希望修复这个问题,请标记自己受到影响并订阅https://bugs.launchpad.net/duplicity/+bug/1003159
该s3://<region>/<bucket>
语法不再起作用,您只能s3+http://<bucket>
在指定的情况下使用 us-east-1 或 eu-west-1 --s3-european-buckets
。您无法访问任何其他区域。
答案3
根据duplicity 手册页,它似乎仅支持美国和欧盟 S3 区域。我猜它正在与美国端点通信,检测到存储桶不存在于美国区域,然后尝试创建它并失败。
尝试在美国或欧盟地区创建一个存储桶并测试它是否有效(--s3-european-buckets
如果合适,请使用)。如果这有效并且您确实想使用新加坡地区,则必须破解 Duplicity 以支持它。