AWSラムダ関数を活用するには、GCSからs3に多くの(1000以上の)ファイルをコピーする必要があります。 _~/.boto.cfg
_を編集し、2つのaws認証パラメーターをコメントアウトしましたが、単純な_gsutil ls s3://mybucket
_が[〜#〜] gce [〜#〜]またはEC2VM。
エラーは_The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256.
_です。
私はgsutilバージョンを使用しています:_4.28
_と[〜#〜] gcs [〜#〜]とS3バケットはそれぞれ_US-CENTRAL1
_とUS East (Ohio)
です-これが関連する場合。
AWSキーが有効で、http/httpsを有効にしているので、わかりません。ラップトップのCyberduckを使用してGCSからダウンロードしてS3にアップロードするのは実用的ではありません(> 230Gb)
https://issuetracker.google.com/issues/62161892 に従って、gsutil
v4.28does~/.boto
に次のような新しい[s3]
セクションを追加することにより、AWS
v4署名をサポートします
[s3]
# Note that we specify region as part of the Host, as mentioned in the AWS docs:
# http://docs.aws.Amazon.com/general/latest/gr/rande.html#s3_region
Host = s3.eu-east-2.amazonaws.com
use-sigv4 = True
そのセクションの使用はboto3
から継承されますが、現在gsutil config
によって作成されていないため、ターゲットエンドポイントに明示的に追加する必要があります。
S3-to-GCSの場合、サーバーレスのStorage Transfer Service
APIを検討します。
私も同様の問題を抱えていました。これが私がGCEマシンでやったことです:
ステップ1:gsutilを使用して、GCSからGCEハードドライブにファイルをコピーしましたステップ2:aws cli(aws s3 cp ...)を使用して、GCEハードドライブからs3バケットにファイルをコピーしました
上記の方法論は私にとって確実に機能しました。 gsutil rsyncを使用しようとしましたが、予期せず失敗します。
お役に立てれば