2013-08-14 31 views
17

tôi có thể đẩy một số nội dung để một xô S3 với các thông tin của mình thông qua công cụ S3cmd với s3cmd đặt contentfile S3: // test_bucket/test_fileTôi làm cách nào để tải xuống tệp từ thùng S3 với wget?

Câu hỏi là, tôi yêu cầu để tải nội dung từ thùng này ở các máy tính khác mà don Không có s3cmd được cài đặt trên chúng, NHƯNG họ đã cài đặt wget.

khi tôi cố gắng để tải về một số nội dung từ xô tôi với wget tôi có được điều này:

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. 

Tôi đã tự làm xô công này thông qua Amazon AWS web console.

Câu hỏi là: Làm cách nào để tải xuống nội dung từ thùng S3 với wget? vào một tập tin cục bộ txt?

Trả lời

7

OK ... Nếu bạn tải lên một tệp trong thùng S3 với S3CMD bằng cờ công khai --acl thì người đó có thể tải tệp từ S3 một cách dễ dàng ...

Kết luận: Trong để tải về với wget, trước hết ta cần phải tải lên các nội dung trong S3 với s3cmd put --acl public --guess-mime-type <test_file> s3://test_bucket/test_file

cách khác bạn có thể thử:

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

thông báo các setacl cờ trên. RẰNG SẼ thiết lập các tập tin trong s3 truy cập công khai sau đó bạn có thể thực hiện wget http://s3.amazonaws.com/test_bucket/test_file

21

Bạn sẽ có thể truy cập nó từ một url tạo như sau:

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

Bây giờ, nói đường dẫn tập tin s3 của bạn là:

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

Bạn sẽ có thể wget tệp này có url sau:

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

+0

lưu ý rằng bạn đang sử dụng giao thức HTTP và tôi đang được cung cấp url HTTPS từ bảng điều khiển quản lý amazon ... HTTPS thay đổi mọi thứ như thế nào? – Becks

13

Bạn có thể sử dụng lệnh:

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

Điều này làm việc cho tôi nhờ – iamjonesy

+0

Hoạt động tuyệt vời! Không cần phải cài đặt s3cmd hoặc CLI khác :) –

3

AWS cli có một lệnh 'presign' mà người ta có thể sử dụng để có được một công tạm thời URL đến tài nguyên s3 riêng tư.

aws s3 presign s3://private_resource 

Sau đó, bạn có thể sử dụng wget để tải xuống tài nguyên bằng URL được chỉ định.

Các vấn đề liên quan