2013-08-14 418 views
17

私はs3cmdプットコンテンツファイルS3とS3cmdツールを使用して、私の資格情報を使用してS3バケットにいくつかのコンテンツをプッシュすることができます:// test_bucket/test_filewgetで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. 

私は手動でアマゾンAWSのWebコンソールを介して、このバケットを公開しています。

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

答えて

7

あなたは--aclパブリックフラグでS3CMDとS3バケットにファイルをアップロードする場合は、1が簡単に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フラグを。それは、あなたがあなたがコマンドを使用することができますwget http://s3.amazonaws.com/test_bucket/test_file

21

あなたは次のように作成した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

+0

あなたはHTTPプロトコルを使用していて、アマゾン管理コンソールからHTTPS URLが与えられていることに注意してください.HTTPSはどのように変更されますか? – Becks

13

を実行することができ公にS3にアクセス可能で をファイルを設定します:

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

これは私にとってうまくいった – iamjonesy

+0

素晴らしい作品! s3cmdや他のCLIをインストールする必要はありません:) –

3

AWS CLIは1つが、一時的な公共を取得するために使用できる「presign」コマンドを持っていますプライベートs3リソースへのURL。

aws s3 presign s3://private_resource 

その後、presigned URLを使用してリソースをダウンロードするためにwgetコマンドを使用することができます。

関連する問題