2013-08-14 5 views
17

मैं s3cmd डाल contentfile S3 के साथ S3cmd उपकरण के माध्यम से अपने पहचान के साथ एक S3 बाल्टी के लिए कुछ सामग्री पुश कर सकते हैं: // test_bucket/test_fileमैं wget के साथ एक एस 3 बाल्टी से फ़ाइल कैसे डाउनलोड कर सकता हूं?

प्रश्न है, मैं इस बाल्टी से सामग्री डाउनलोड करने के लिए आवश्यक कर रहा हूँ है अन्य कंप्यूटरों कि डॉन उन पर s3cmd स्थापित नहीं है, लेकिन वे 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. 

मैं मैन्युअल रूप से अमेज़न एडब्ल्यूएस वेब कंसोल के माध्यम से इस बाल्टी सार्वजनिक बना दिया है:

जब मैं wget के साथ अपने बाल्टी से कुछ सामग्री डाउनलोड करने की कोशिश मैं इस मिलता है।

प्रश्न है: मैं wget के साथ एक एस 3 बाल्टी से सामग्री कैसे डाउनलोड कर सकता हूं? एक txt स्थानीय फ़ाइल में?

उत्तर

7

मिल गया ... आप --acl सार्वजनिक ध्वज के साथ S3CMD के साथ एक S3 बाल्टी में एक फ़ाइल अपलोड फिर एक wget आसानी के साथ एस 3 से फ़ाइल डाउनलोड करने में सक्षम हो जाएगा ...

निष्कर्ष हैं: में एक के पहले 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

21

आप के रूप में बनाया एक url से उपयोग करने में सक्षम होना चाहिए इस प्रकार है:

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

अब मान लीजिए कि आपके S3 फ़ाइल पथ है:

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

आप में सक्षम होना चाहिए निम्नलिखित यूआरएल के साथ इस फ़ाइल को wget:

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

+0

ध्यान दें कि आप एक HTTP प्रोटोकॉल का उपयोग कर रहे हैं और मुझे अमेज़ॅन प्रबंधन कंसोल से HTTPS url दिया जा रहा है ... HTTPS चीजों को कैसे बदलता है? – Becks

13

आप आदेश का उपयोग कर सकते हैं:

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

यह मेरे लिए काम किया धन्यवाद – iamjonesy

+0

महान काम करता है! S3cmd या अन्य सीएलआई स्थापित करने की कोई ज़रूरत नहीं है :) –

3

एडब्ल्यूएस CLI एक 'presign' कमांड है कि एक एक अस्थायी सार्वजनिक पाने के लिए उपयोग कर सकते हैं एक निजी एस 3 संसाधन के लिए यूआरएल।

aws s3 presign s3://private_resource 

फिर आप निर्धारित यूआरएल का उपयोग कर संसाधन डाउनलोड करने के लिए wget का उपयोग कर सकते हैं।

संबंधित मुद्दे