2013-04-09 19 views
41

के बीच फ़ाइलों को स्थानांतरित करने के लिए मैं AWS ec2 इंस्टेंस का उपयोग कर रहा हूं। इस उदाहरण पर मैं कुछ फाइलें उत्पन्न कर रहा हूं। ये ऑपरेशन उपयोगकर्ता डेटा द्वारा किए जाते हैं।AWS s3 और AWS ec2

अब मैं उन फ़ाइलों को उपयोगकर्ता डेटा में कोड लिखकर एस 3 पर स्टोर करना चाहता हूं।

  • तो मैं उन फ़ाइलों को एस 3 पर कैसे स्टोर कर सकता हूं?
  • इस पर कोई ट्यूटोरियल है?
+0

क्या आपके पास इसके साथ कोई भाग्य है? –

उत्तर

8

मैं अपने ec2 उदाहरण से रात में निर्यात की गई डेटाबेस बैकअप फ़ाइलों को संग्रहीत करने के लिए s3cmd का उपयोग कर रहा हूं।

s3cmd put ./myfile s3://mybucket

+0

यह काम करता है लेकिन मैं अपने PHP कोड में s3cmd का उपयोग करने में असमर्थ हूं। – Asghar

+0

क्या आपने मेरा जवाब देखा है? –

31

S3 के लिए फ़ाइलें भेजने के लिए तरीकों की एक संख्या हैं: s3cmd है, जो आप अपनी साइट पर के बारे में पढ़ सकते हैं के विन्यास के बाद, आप की तरह एक आदेश चला सकते हैं। मैंने उन्हें नीचे सूचीबद्ध और दस्तावेज़ीकरण के साथ सूचीबद्ध किया है जहां प्रासंगिक है।

  • S3CMD: (http://s3tools.org/s3cmd) आप डेबियन पर इस स्थापित कर सकते हैं/ubuntu आसानी से के माध्यम से apt-get s3cmd स्थापित करते हैं, तो कमांड लाइन से चलाते हैं। आप इसे एक बैश स्क्रिप्ट या अपने प्रोग्राम में शामिल कर सकते हैं।

  • S3FS: (http://www.pophams.com/blog/howto-setups3fsonubuntu1104x64 और https://code.google.com/p/s3fs/wiki/InstallationNotes) ... यह एक S3 बाल्टी mounts, इतना है कि यह सिर्फ एक स्थानीय डिस्क की तरह दिखता है। इसे सेटअप करने के लिए थोड़ा और प्रयास लगता है, लेकिन एक बार डिस्क घुड़सवार होने के बाद, आपको अपनी बाल्टी में फ़ाइलों को प्राप्त करने के लिए कुछ भी विशेष करने की आवश्यकता नहीं है।

  • आप उपयोग करते हैं एक सीएमएस आप का विकल्प हो सकता http://drupal.org/project/storage_api

  • अंत में अपने बाल्टी जैसे के लिए उपयोग को संभालने के लिए एक मॉड्यूल का उपयोग कर (एक उदाहरण के रूप Drupal का उपयोग करने देता), तो आपको प्रोग्रामिंग भाषा का उपयोग कर सकते कार्यान्वयन सब अपने आप को तार्किक, पीएचपी के लिए आप इस http://undesigned.org.za/2007/10/22/amazon-s3-php-class साथ पीएचपी im का एक उदाहरण शुरू करने और यहां http://undesigned.org.za/2007/10/22/amazon-s3-php-class/documentation

प्रलेखन देख सकते हैं संभाल करने के लिए plementation:

<?php 

    // Simple PUT: 
    if (S3::putObject(S3::inputFile($file), $bucket, $uri, S3::ACL_PRIVATE)) { 
     echo "File uploaded."; 
    } else { 
     echo "Failed to upload file."; 
    } 

?> 

s3cmd का एक उदाहरण: यह व्यापक रूप से उपलब्ध, उदाहरण के लिए यह पहले से ही AmazonLinux और कर सकते हैं पर शामिल किया गया है है

s3cmd put my.file s3://bucket-url/my.file 

संपादित

एक अन्य विकल्प के लायक उल्लेख एडब्ल्यूएस CLI http://aws.amazon.com/cli/ है पायथन के माध्यम से डाउनलोड किया जाना चाहिए (जो लिनक्स और विंडोज़ सहित कई प्रणालियों पर स्थापित है)।

http://docs.aws.amazon.com/cli/latest/reference/s3/index.html

उपलब्ध आदेशों सीपी ls एमबी mv rb rm सिंक वेबसाइट

http://docs.aws.amazon.com/cli/latest/reference/s3api/index.html उपयोग s3cmd S3

के साथ बातचीत
+0

ग्रेट उत्तर दोस्त .. बस इस के लिए देख रहा था :) –

4

कि के लिए के लिए:

s3cmd get s3://AWS_S3_Bucket/dir/file 

देखें हो डब्ल्यू s3cmd here स्थापित करने के लिए:

yum install s3cmd 

या

sudo apt-get install s3cmd 

अपने ओएस पर निर्भर करता है:

यह मेरे लिए काम करता ...

9

s3cmd पैकेज के रूप में स्थापित करें। तो फिर इस के साथ डेटा की प्रतिलिपि:

s3cmd get s3://tecadmin/file.txt 

भी ls फ़ाइलों की सूची कर सकते हैं।

के लिए अधिक detils this

50

देखना सबसे हाल ही में एडब्ल्यूएस CLI (http://aws.amazon.com/cli/) का उपयोग करके आप S3 भंडारण करने के लिए अपने EC2 उदाहरण से फ़ाइलों की प्रतिलिपि या यहाँ तक कि आप स्थानीय मशीन के लिए निम्न आदेश का उपयोग कर सकते हैं।

aws s3 cp myfolder s3://mybucket/myfolder --recursive 

फिर आप की तरह कुछ मिल जाएगा:

aws configure

: इस तो आप चलाने की आवश्यकता होगी aws CLI उपकरण के अपने पहले उपयोग है

upload: myfolder/file1.txt to s3://mybucket/myfolder/file1.txt 
upload: myfolder/subfolder/file1.txt to s3://mybucket/myfolder/subfolder/file1.txt 

यह आपको एक डिफ़ॉल्ट क्षेत्र निर्दिष्ट करने के साथ आपकी पहुंच कुंजी & गुप्त दर्ज करने के लिए कहेंगे।

+1

aws cli s3cmd से काफी बेहतर है। –

+0

@ajtrichards कमांड लाइन तर्क का उपयोग कर एक्सेस कुंजी और गुप्त प्रदान करने का कोई तरीका है? – EmptyData

+0

@EmptyData आप '--profile PROFILE_NAME' ध्वज का उपयोग कर सकते हैं यह इंगित करने के लिए कि किस क्रेडेंशियल्स का उपयोग करना है? यदि आपने अपनी कमांड लाइन पर एकाधिक AWS प्रोफ़ाइल सेट की हैं। – ajtrichards

3

एक छद्म फाइल सिस्टम के रूप में s3 को माउंट करने के सभी प्रयास समस्याग्रस्त हैं। यह एक ऑब्जेक्ट स्टोर है, न कि ब्लॉक डिवाइस। यदि आपको इसे माउंट करना होगा क्योंकि आपके पास विरासत कोड है जिसमें स्थानीय फ़ाइल पथ होना चाहिए, goofys आज़माएं। यह s3fs से लगभग 50x तेज है। https://github.com/kahing/goofys

s3cmd इन दिनों दांत में थोड़ी देर तक है। एडब्ल्यूएस क्ली इन दिनों एक बेहतर विकल्प है। वाक्यविन्यास थोड़ा कम सुविधाजनक है, लेकिन यह एक कम उपकरण है जिसे आपको आसपास रखने की आवश्यकता है।

यदि आप http तक पहुंच सकते हैं। यह आपको लंबे समय तक जीवन आसान बना देगा।