Я пытаюсь сделать резервную копию своих файлов через Duplicity на Amazon S3 - ведро во Франкфурте (eu-central-1).

Моя команда:

/usr/bin/duplicity \
    --exclude-if-present do-not-backup \
    --s3-use-new-style \
    --s3-use-ia \
    --sign-key 9CCF...585 \
    --encrypt-key 9CCF...585 \
    --encrypt-key 9D43...725 \
    --use-agent \
    / \
    s3+http://my-example-frankfurt-bucket/backups/

Но AWS возвращает 400 Bad Request со следующим <Message>:

Предоставленный вами механизм авторизации не поддерживается. Пожалуйста, используйте AWS4-HMAC-SHA256.

Полный возврат:

Traceback (most recent call last):
  File "/usr/bin/duplicity", line 1553, in <module>
    with_tempdir(main)
  File "/usr/bin/duplicity", line 1547, in with_tempdir
    fn()
  File "/usr/bin/duplicity", line 1382, in main
    action = commandline.ProcessCommandLine(sys.argv[1:])
  File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 1126, in ProcessCommandLine
    backup, local_pathname = set_backend(args[0], args[1])
  File "/usr/lib/python2.7/dist-packages/duplicity/commandline.py", line 1015, in set_backend
    globals.backend = backend.get_backend(bend)
  File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 223, in get_backend
    obj = get_backend_object(url_string)
  File "/usr/lib/python2.7/dist-packages/duplicity/backend.py", line 209, in get_backend_object
    return factory(pu)
  File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 166, in __init__
    self.resetConnection()
  File "/usr/lib/python2.7/dist-packages/duplicity/backends/_boto_single.py", line 191, in resetConnection
    location=self.my_location)
  File "/usr/lib/python2.7/dist-packages/boto/s3/connection.py", line 625, in create_bucket
    response.status, response.reason, body)
S3ResponseError: S3ResponseError: 400 Bad Request
<?xml version="1.0" encoding="UTF-8"?>
<Error><Code>InvalidRequest</Code><Message>The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.</Message><RequestId>3F4...7DF7</RequestId><HostId>9nXs0JD...UeaU2WyRiw=</HostId></Error>

Используемые версии: Duplicity 0.7.11, boto 2.44.0

1 ответ1

5

Я исправил, указав имя хоста S3 напрямую - хотя я не уверен, как именно это исправляет :)

/usr/bin/duplicity \
    --exclude-if-present do-not-backup \
    --s3-use-new-style \
    --s3-use-ia \
    --sign-key 9CCF...585 \
    --encrypt-key 9CCF...585 \
    --encrypt-key 9D43...725 \
    --use-agent \
    / \
    s3://s3.eu-central-1.amazonaws.com/my-example-frankfurt-bucket/backups/

КСТАТИ. список конечных точек AWS находится здесь: http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .