AmazonS3バケットにバックアップするようにDuplicityインストールを構成しようとしています。 BackendException
エラーが発生し続けますが、詳細はありません。
編集:問題をさらに特定するために、この質問からDuply構成を削除し、小さなディレクトリ(10 MB、34ファイル)で単純なduplicityコマンドに切り替えました。
これが私が実行しようとしているコマンドです:
duplicity full ./logs "s3://s3-us-east-1.amazonaws.com/bucketname" -v9
そして、これが出力です:
root@ats:/var/ats# duplicity full ./logs "s3://s3-us-east-1.amazonaws.com/bucketname" -v9
Duplicity 0.6 series is being deprecated:
See http://www.nongnu.org/duplicity/
Using archive dir: /root/.cache/duplicity/876c7d0b54276e675d41f6ea6077d52f
Using backup name: 876c7d0b54276e675d41f6ea6077d52f
Import of duplicity.backends.botobackend Succeeded
Import of duplicity.backends.cfbackend Succeeded
Import of duplicity.backends.dpbxbackend Succeeded
Import of duplicity.backends.ftpbackend Succeeded
Import of duplicity.backends.ftpsbackend Succeeded
Import of duplicity.backends.gdocsbackend Succeeded
Import of duplicity.backends.hsibackend Succeeded
Import of duplicity.backends.imapbackend Succeeded
Import of duplicity.backends.localbackend Succeeded
Import of duplicity.backends.megabackend Succeeded
Import of duplicity.backends.rsyncbackend Succeeded
Import of duplicity.backends.sshbackend Succeeded
Import of duplicity.backends.swiftbackend Succeeded
Import of duplicity.backends.tahoebackend Succeeded
Import of duplicity.backends.webdavbackend Succeeded
Import of duplicity.backends.~par2wrapperbackend Succeeded
Using temporary directory /tmp/duplicity-sQ3sGs-tempdir
Backend error detail: Traceback (most recent call last):
File "/usr/local/bin/duplicity", line 1509, in <module>
with_tempdir(main)
File "/usr/local/bin/duplicity", line 1503, in with_tempdir
fn()
File "/usr/local/bin/duplicity", line 1336, in main
action = commandline.ProcessCommandLine(sys.argv[1:])
File "/usr/local/lib/python2.7/dist-packages/duplicity/commandline.py", line 1062, in ProcessCommandLine
backup, local_pathname = set_backend(args[0], args[1])
File "/usr/local/lib/python2.7/dist-packages/duplicity/commandline.py", line 955, in set_backend
globals.backend = backend.get_backend(bend)
File "/usr/local/lib/python2.7/dist-packages/duplicity/backend.py", line 163, in get_backend
return _backends[pu.scheme](pu)
File "/usr/local/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 163, in __init__
self.resetConnection()
File "/usr/local/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 189, in resetConnection
raise BackendException(err.message)
BackendException
BackendException:
私はこのスクリプトでBoto(DuplicityがS3接続に使用するもの)をテストしました:
root@ats:/var/ats# python
Python 2.7.6 (default, Jun 22 2015, 17:58:13)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import boto.s3
>>> conn = boto.s3.connect_to_region("us-east-1")
>>> bucket = conn.get_bucket("bucketname")
>>> for key in bucket.list(): print key, key.storage_class
...
<Key: bucketname,test.txt> STANDARD
>>> exit()
DuplicityとPythonの最新の適切なバージョンを実行していることを確認し、Botoで正常に機能するAWS_ *変数を設定しました。
私は何かが足りないのですか?私は何をすべきか?
元のコマンドが機能しなかった理由はわかりませんが、最終的にURL形式をs3://s3-us-east-1.amazonaws.com/bucketname
からs3+http://bucketname
に変更すると問題が解決することがわかりました。
削減された作業コマンドは次のとおりです。
duplicity full ./logs "s3+http://bucketname" -v9
それでも機能しない場合は、次を追加してみてください:export S3_USE_SIGV4="True"
重複プロファイルconfファイルに。
これは詳細に説明されています ここ そして私のために働きました。
SIGV4ソリューションもs3 + httpソリューションも私にはうまくいきませんでした。
私の解決策は、一般的な「s3」の代わりに、URLで地域名を使用することでした。私の場合、これはeu-west-1(アイルランド)でした。
これは次のようになります。
s3://s3-eu-west-1.amazonaws.com/bucketname
の代わりに:
s3://s3.amazonaws.com/bucketname
2番目の汎用URLはs3cmdなどの他のツールで機能しますが、Duplicity/Botoでは機能しませんでした。
フランクフルトやシンガポールなどの新しい地域を使用している場合は、このソリューションをJoeHudsonの回答と組み合わせる必要がある場合があります。