web-dev-qa-db-ja.com

wgetを使用してS3バケットからファイルをダウンロードするにはどうすればよいですか?

S3cmd put contentfile S3:// test_bucket/test_fileを使用して、S3cmdツールを介して資格情報で一部のコンテンツをS3バケットにプッシュできます。

質問は、s3cmdがインストールされていない他のコンピューターのこのバケットからコンテンツをダウンロードする必要があることですが、wgetがインストールされています。

wgetを使用してバケットからコンテンツをダウンロードしようとすると、次のようになります。

 https://s3.amazonaws.com/test_bucket/test_file
--2013-08-14 18:17:40--  `https`://s3.amazonaws.com/test_bucket/test_file
Resolving s3.amazonaws.com (s3.amazonaws.com)... [ip_here]
Connecting to s3.amazonaws.com (s3.amazonaws.com)|ip_here|:port... connected.
HTTP request sent, awaiting response... 403 Forbidden
`2013`-08-14 18:17:40 ERROR 403: Forbidden.

Amazon AWSウェブコンソールを介して、このバケットを手動で公開しました。

質問:wgetを使用してS3バケットからコンテンツをダウンロードするにはどうすればよいですか? txtローカルファイルに?

25
Becks

わかりました... --aclパブリックフラグを指定してS3CMDでS3バケットにファイルをアップロードすると、wgetでS3からファイルを簡単にダウンロードできるようになります...

結論:wgetでダウンロードするには、最初にs3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_fileでS3のコンテンツをアップロードする必要があります

代わりに試すことができます:

s3cmd setacl --acl-public --guess-mime-type s3://test_bucket/test_file

上記のsetaclフラグに注目してください。 s3のファイルをパブリックにアクセス可能に設定すると、wget http://s3.amazonaws.com/test_bucket/test_fileを実行できます

8
Becks

次のように作成されたURLからアクセスできるはずです。

http://{bucket-name}.s3.amazonaws.com/<path-to-file>

ここで、s3ファイルのパスは次のとおりです。

s3://test-bucket/test-folder/test-file.txt

次のURLでこのファイルをwgetできるはずです。

http://test-bucket.s3.amazonaws.com/test-folder/test-file.txt

24
Amar

次のコマンドを使用できます。

wget --no-check-certificate --no-proxy 'http://your_bucket.s3.amazonaws.com/my-file.jpg'
23
tiagomatos

AWS CLIには、プライベートs3リソースへの一時パブリックURLを取得するために使用できる「presign」コマンドがあります。

aws s3 presign s3://private_resource

その後、wgetを使用して、事前署名されたURLを使用してリソースをダウンロードできます。

8
beevor

同じエラーが発生したため、セキュリティグループの受信ルールを追加して解決しました。

インスタンスが存在するサブネットのポート443でのHTTPSタイプ(私のIPアドレスにアクセスするのは私だけなので)。

これを含めるのを忘れた人に役立つことを願っています

0
Hilmi Marzuqi

linuxマシンにawsクライアントをインストールする方法がない場合は、以下の方法を試してください。

  • バケットに行き、ボタンとしてダウンロードをクリックします。生成されたリンクをコピーします。
  • 以下のコマンドを実行します

    wget --no-check-certificate --no-proxy --user = username --ask-password -O "download url"

ありがとう

0
Dino