0

私は aws-cli に問題があり、yum の更新を行い、awscli を更新しました (とりわけ)、awscli は大きなファイル (5.1 Gb など) で SignatureDoesNotMatch で失敗します。小さいファイルでまったく同じコマンド (同じバケットに対して) が機能します。Pythonのbotoを使用すると、大きなファイルは引き続き機能します。

2 つのように見える (つまり、745 パーツ中 743 パーツまでカウントされた) 以外のすべてのパーツをコピーし、エラー メッセージが表示されます。

awscli のバグのように見えますか? グーグルで調べても何も見つかりませんでした。

これはすべてec2インスタンスで実行されます。

$ /usr/bin/aws --version
aws-cli/1.5.4 Python/2.6.9 Linux/3.14.20-20.44.amzn1.x86_64

$ ls -hl
-rw-rw-r-- 1 user user      4 Nov  4 21:14 small
-rw-rw-r-- 1 user user 5.1G Nov  4 20:02 big

$ /usr/bin/aws s3 cp small s3://mybucket/uploaded.ext
upload: ./small to s3://mybucket/uploaded.ext

$ /usr/bin/aws s3 cp big s3://mybucket/uploaded.ext
upload failed: ./big to s3://mybucket/uploaded.ext
A client error (SignatureDoesNotMatch) occurred when calling the UploadPart operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

編集:見つかったと思いましたが、まだこの問題があります。コード全体で使用しているものであり、boto よりもかなり高速であるため (少なくとも機能する場合)、awscli に固執することをお勧めします。

編集 2: 実際には悪化の一途をたどっています。コンソールで同じコピー コマンドを繰り返すことができます。

4

2 に答える 2

1

aws-cliは確かに 5GB 以上のアップロードを処理できます。

EC2 インスタンスを起動し、正常に完了することができました。

$ /usr/bin/aws --version
aws-cli/1.3.6 Python/2.6.9 Linux/3.10.35-43.137.amzn1.x86_64

$ dd if=/dev/zero of=small bs=1K count=1
1+0 records in
1+0 records out
1024 bytes (1.0 kB) copied, 0.000388469 s, 2.6 MB/s

$ dd if=/dev/zero of=big bs=5M count=1000
1000+0 records in
1000+0 records out
5242880000 bytes (5.2 GB) copied, 73.733 s, 71.1 MB/s

$ aws s3 mb s3://target77
make_bucket: s3://target77/

$ aws s3 cp small s3://target77/small
upload: ./small to s3://target77/small

$ aws s3 cp big s3://target77/big
upload: ./big to s3://target77/big       

$ aws s3 ls s3://target77/
2014-11-17 09:44:42 5242880000 big
2014-11-17 09:44:29       1024 small

ここまでは順調ですね!

次に、CLI の新しいバージョンに更新して、再試行しました。

$ sudo yum update
...

$ /usr/bin/aws --version
aws-cli/1.5.5 Python/2.6.9 Linux/3.10.35-43.137.amzn1.x86_64

$ aws s3 cp small s3://target77/small
upload: ./small to s3://target77/small

$ aws s3 cp big s3://target77/big
upload failed: ./big to s3://target77/bigs) remaining
A client error (SignatureDoesNotMatch) occurred when calling the UploadPart operation: The request signature we calculated does not match the signature you provided. Check your key and signing method.

EC2 インスタンスと S3 バケットを同じリージョンと異なるリージョンで使用して実験を繰り返しました。どちらの状況でも最終的にエラーが発生しましたが、うまくいくこともありました。

したがって、更新された aws-cli に問題があるようです。さらに、コピーコマンドを再実行しようとすると、乱数の「パーツ」の後にエラーが発生しました。

このSignatureDoesNotMatchエラーは、Amazon S3 サービスではなく、セキュリティ認証情報に関連しています。人々が GitHub で報告した問題に似ているように思えます: Recurring SignatureDoesNotMatch client error #995

そのため、問題が解決されるまで、以前のバージョンの aws-cli を使用することをお勧めします。

于 2014-11-17T10:18:40.037 に答える
0

それが aws-cli のバグであっても、私は驚かないでしょう。S3 との間でファイルをコピーしたり、他のすべての S3 ベースの操作を行ったりするには、代わりにs3cmdを使用することをお勧めします。

于 2014-11-05T00:35:16.020 に答える