amazon-s3 ट्यूटोरियल
Amazon-s3 के साथ शुरुआत करना
खोज…
टिप्पणियों
दस्तावेज़ से सारांश
Http://docs.aws.amazon.com/AmazonS3/latest/dev/Welcome.html से
Amazon Simple Storage Service इंटरनेट के लिए स्टोरेज है। इसे डेवलपर्स के लिए वेब-स्केल कंप्यूटिंग को आसान बनाने के लिए डिज़ाइन किया गया है।
अमेज़ॅन एस 3 में एक सरल वेब सेवा इंटरफ़ेस है जिसका उपयोग आप किसी भी समय, किसी भी समय, वेब पर कहीं से भी किसी भी डेटा को संग्रहीत और पुनः प्राप्त करने के लिए कर सकते हैं। यह किसी भी डेवलपर को उसी अत्यधिक स्केलेबल, विश्वसनीय, तेज, सस्ती डेटा भंडारण संरचना तक पहुंच प्रदान करता है जो अमेज़ॅन वेब साइटों के अपने वैश्विक नेटवर्क को चलाने के लिए उपयोग करता है। सेवा का उद्देश्य पैमाने के लाभों को अधिकतम करना और डेवलपर्स को उन लाभों को पारित करना है।
भाषा और पटकथा समर्थन
S3 एक विकास भाषा नहीं है, लेकिन ऐसा क्लाउड प्लेटफ़ॉर्म जो वेब सेवा अनुरोधों का समर्थन करता है। वहाँ उपकरणों की एक वर्गीकरण और एसडीके है कि अमेज़न द्वारा प्रकाशित कर रहे हैं। वेब सेवाओं के अनुरोधों, प्रमाणीकरण, सत्र प्रबंधन, टोकन नवीनीकरण आदि जैसे कार्यों को संभालने के द्वारा भाषा एसडीके एस 3 को पारदर्शी पहुंच प्रदान करती है। बैश / विंडोज / आईओएस और पावरशेल के लिए कमांड लाइन इंटरफेस भी हैं।
S3 एपीआई
S3 वेब सेवा API को प्रतिस्पर्धी विक्रेताओं द्वारा समर्थित किया गया है। यह विषय वर्तमान में सीधे एपीआई को कवर नहीं करता है, इसलिए यहां के उदाहरण उन अनुप्रयोगों के निर्माण के लिए उपयोगी नहीं होंगे जो प्रतिस्पर्धा प्रणालियों से जुड़ते हैं जो एस 3 एपीआई का लाभ उठाते हैं।
संस्करण
28 मार्च 2017 तक, AWS CLI के 174 संस्करण हैं, जिन्हें CLI रिलीज़ नोट्स में साफ़-साफ़ दर्ज़ किया गया है। अमेज़ॅन एस 3 के 66 संस्करण हैं, जिनमें से कुछ एक नए क्षेत्र के अलावा की घोषणा करने के लिए हैं, और अन्य को कार्यक्षमता जोड़ना है। ये S3 रिलीज़ नोट्स में प्रलेखित हैं।
उदाहरण
इस "गेटिंग स्टार्टेड" सेक्शन में अब तक दिखाए गए उदाहरणों के संबंध में, अमेज़न एस 3 निम्नलिखित उपयोग मामलों के लिए डेवलपर्स के लिए उपयोगी है:
- एक उच्च प्रदर्शन करने वाली, टिकाऊ प्रणाली में फ़ाइलों को स्टोर या बैक अप करें , इस प्रकार गैर-क्लाउड आर्किटेक्चर से इस कार्य को लोड करना: लिनक्स और विंडोज सिस्टम सिस्टम। प्रीमियर सर्वर या EC2 इंस्टेंसेस पर एस 3 के स्थायित्व और प्रदर्शन स्तरों को फिर से बनाना महंगा है।
- जब नेटवर्क बैंडविड्थ एक मुद्दा होता है, उदाहरण के लिए, ऐसे मामलों में जहां एक साथ कई उपयोगकर्ताओं को बड़ी फ़ाइलों को डाउनलोड करना होता है, तो S3 के लिए डेटा को स्थानांतरित करने के लिए एक अनुप्रयोग के लिए बैंडविड्थ की कमी को डेटासेंटर या ऑन-प्रिमाइसेस सर्वर के रूप में उपयोग किया जा सकता है । यह एक बड़े कोड रिपॉजिटरी, वर्चुअल मशीन इमेज, वीडियो या सॉफ्टवेयर इंस्टालर को वितरित करने का एक तरीका है। उपयोगकर्ता अपलोड समय और उपयोगकर्ता डाउनलोड समय में सुधार किया जा सकता है। [बहुत बड़े उपयोगकर्ता आधार परिदृश्यों में अतिरिक्त प्रदर्शन के लिए, क्लाउडफ्रंट जैसी सामग्री वितरण प्रणाली का उपयोग उपयोगकर्ताओं के करीब फ़ाइलों को कैश करने के लिए किया जा सकता है।]
- आपके एप्लिकेशन को एक बड़ी फ़ाइल बनाने या उपभोग करने की आवश्यकता है और आपको उपयोगकर्ताओं को इसे एक्सेस या जमा करने की अनुमति देने का एक तरीका चाहिए।
- आपका एप्लिकेशन वितरण बहुत बड़ा है और आपको इसे उपयोगकर्ताओं के साथ साझा करने की आवश्यकता है।
- आप एक निरंतर वितरण पाइप लाइन डाल रहे हैं और उदाहरण के लिए अमेज़ॅन एस 3 पर अपनी वेबसाइट के कुछ हिस्सों की मेजबानी कर रहे हैं।
इस बिंदु पर उदाहरण यह नहीं दिखाते हैं कि निम्नलिखित कैसे करना है:
- उदाहरण, हालांकि
aws s3 help, do not mention some of the commands covered in help, such as
टाइप करने की तुलना में तेज़ और स्पष्ट हैaws s3 help, do not mention some of the commands covered in help, such as
aws s3 वेबसाइट `। - उपयोगकर्ता पहुंच को कैसे साझा या प्रतिबंधित किया जाए। स्पष्ट प्रतिबंध के बिना, उदाहरण केवल उसी एडब्ल्यूएस खाते को साझा करने वाले उपयोगकर्ताओं के लिए काम करेंगे।
- एन्क्रिप्शन के माध्यम से डेटा को कैसे सुरक्षित करें। ध्यान दें कि EC2 में संग्रहीत डेटा की तुलना में AWS स्थिति S3 की उच्च स्तर की सुरक्षा करता है। AWS सिक्योरिटी बेस्ट प्रैक्टिसेस, अगस्त 2016, पी। 27
सुरक्षा
AWS S3 को एक सुरक्षित प्लेटफॉर्म के रूप में देखने की सिफारिश करता है:
जब तक आपके पास अधिक कठोर व्यवसाय या अनुपालन आवश्यकताएं नहीं होती हैं, आपको AWS द्वारा प्रदान की जाने वाली वैश्विक अवसंरचना से परे सुरक्षा की अतिरिक्त परतों को पेश करने की आवश्यकता नहीं है। ibid। पृष्ठ .2
उनके सुरक्षा गाइड में , AWS S3 के लिए उपयुक्त AWS प्रमाणीकरण का उपयोग करने की अनुशंसा करता है। ibid। पी। 27
इसके अतिरिक्त, S3 सर्वर-साइड एन्क्रिप्शन या क्लाइंट-साइड एन्क्रिप्शन प्रदान करता है। क्लाइंट साइड एन्क्रिप्शन पारदर्शिता से एडब्ल्यूएस जावा एसडीके द्वारा प्रदान किया जाता है; कुंजी को AWS पर संग्रहीत नहीं किया जाना चाहिए। ibid। पी। 28
संस्करण
संस्करण का नाम | विवरण | टिप्पणियाँ | रिलीज़ की तारीख |
---|---|---|---|
2016-12-13 को अमेजन एस 3 | लंदन क्षेत्र जोड़ता है | टिप्पणियाँ | 2016/12/13 |
S3 तक पहुँचने के लिए AWS CLI की स्थापना
उबंटू / डेबियन इंस्टेंस में अवीस क्ली को स्थापित करना
sudo apt-get install -y python-dev python-pip
sudo pip install awscli
aws --version
aws configure
अजगर का उपयोग करते हुए aws cli इंस्टॉल करना
पाइप का उपयोग करके आप विंडो, OS X और Linux में aws cli इंस्टॉल कर सकते हैं
sudo pip install awscli
एडब्ल्यूएस कमांड लाइन इंटरफ़ेस को कॉन्फ़िगर करना
यह अनुभाग बताता है कि AWS के साथ बातचीत करते समय AWS कमांड लाइन इंटरफ़ेस का उपयोग करने वाली सेटिंग्स को कैसे कॉन्फ़िगर किया जाए, जैसे कि आपकी सुरक्षा क्रेडेंशियल और डिफ़ॉल्ट क्षेत्र।
$ aws configure
AWS Access Key ID [None]: <Your access key >
AWS Secret Access Key [None]: <Your secret key>
Default region name [None]: us-west-2
Default output format [None]: json
AWS में खाता पृष्ठ से पहुँच कुंजी और गुप्त कुंजी प्राप्त करें
बाल्टी बनाना
नई बाल्टी बनाने के लिए a3 sb mb कमांड का उपयोग करें। बकेट नाम अद्वितीय होना चाहिए और DNS अनुरूप होना चाहिए। बकेट नाम में लोअरकेस अक्षर, संख्याएँ, हाइफ़न और अवधियाँ हो सकती हैं
aws s3 mb s3://bucket-name
बाल्टियाँ निकालना
एक बाल्टी निकालने के लिए, a3 s3 rb कमांड का उपयोग करें। लेकिन डिफ़ॉल्ट बाल्टी खाली होनी चाहिए।
aws s3 rb s3://bucket-name
एक गैर-खाली बाल्टी को हटाने के लिए, आपको --force विकल्प शामिल करना होगा।
aws s3 rb s3://bucket-name --force
लिस्टिंग बाल्टी
सभी बकेट या उनकी सामग्री को सूचीबद्ध करने के लिए, a3 ss कमांड का उपयोग करें
aws s3 ls
aws s3 ls s3://bucket-name
निम्न आदेश बाल्टी-नाम / पथ में वस्तुओं को सूचीबद्ध करता है
aws s3 ls s3://bucket-name/path
स्थानीय फ़ाइल सिस्टम और S3 के बीच फ़ाइलों को सिंक्रनाइज़ करें
aws s3 sync . s3://my-bucket/path
यह वर्तमान निर्देशिका में सभी फाइलों को S3 में अपलोड करेगा। वर्तमान निर्देशिका निष्पादित करने के लिए S3 से फ़ाइलों को डाउनलोड करने के लिए
aws s3 sync s3://my-bucket/path .
AWS CLI S3 कमांड लिस्ट
आमतौर पर प्रयुक्त S3 AWS सीएलआई कमांड की सूची
बाल्टी बनाएँ
aws s3 mb s3://bucket-name
बाल्टी को हटा दें
aws s3 rb s3://bucket-name
सूची सूची
aws s3 ls
बाल्टी के अंदर सूची सामग्री
aws s3 ls s3://bucket-name
एक मार्ग के साथ बाल्टी को सूचीबद्ध करें
aws s3 ls s3://bucket-name/path
प्रतिलिपि फ़ाइल
aws s3 cp file.txt s3://my-bucket/
फ़ाइलों को सिंक्रनाइज़ करें
aws s3 sync . s3://my-bucket/path
स्थानीय फ़ाइल हटाएँ
rm ./MyFile1.txt
सिंक के बिना प्रयास करें - हटाएं विकल्प - कुछ नहीं होता है
aws s3 sync . s3://my-bucket/path
विलोपन के साथ सिंक - वस्तु बाल्टी से हटा दी जाती है
aws s3 sync . s3://my-bucket/path --delete
बाल्टी से ऑब्जेक्ट हटाएं
aws s3 rm s3://my-bucket/path/MySubdirectory/MyFile3.txt
हटाने के साथ सिंक - स्थानीय फ़ाइल हटा दी जाती है
aws s3 sync s3://my-bucket/path . --delete
Infrequent Access संग्रहण वर्ग के साथ सिंक करें
aws s3 sync . s3://my-bucket/path --storage-class STANDARD_IA
वर्तमान निर्देशिका में MyFile.txt को s3: // my-bucket / path पर कॉपी करें
aws s3 cp MyFile.txt s3://my-bucket/path/
सभी .jpg फाइलों को s3: // my-bucket / path to ./MyDirectory पर ले जाएँ
aws s3 mv s3://my-bucket/path ./MyDirectory --exclude '*' --include '*.jpg' --recursive
मेरी बाल्टी की सामग्री को सूचीबद्ध करें
aws s3 ls s3://my-bucket
मेरी बाल्टी में पथ की सामग्री को सूचीबद्ध करें
aws s3 ls s3://my-bucket/path
हटाएं s3: //my-bucket/path/MyFile.txt
aws s3 rm s3://my-bucket/path/MyFile.txt
हटाएँ s3: // my-bucket / path और इसकी सभी सामग्री
aws s3 rm s3://my-bucket/path --recursive
हैलो वर्ल्ड उदाहरण जावा का उपयोग करते हुए
यह उदाहरण एक बाल्टी बनाने का प्रयास करता है जिसे 'हैलो-वर्ल्ड' कहा जाता है और, बाल्टी हेलो-वर्ल्ड पहले से ही S3 के ग्लोबल नेमस्पेस में किसी और द्वारा बनाई गई है, निम्न अपवाद फेंकता है। विशिष्ट नाम वाली बाल्टी बनाकर अपवाद से बचने के लिए 'हैलो-वर्ल्ड' को कुछ और बदलें। बनाई गई नई बाल्टी को AWS कंसोल का उपयोग करके हटाया जा सकता है
थ्रेड "मुख्य" com.amazonaws.services.s3.model.AmazonS3Exception में अपवाद: अनुरोधित बाल्टी नाम उपलब्ध नहीं है। बाल्टी नाम स्थान सिस्टम के सभी उपयोगकर्ताओं द्वारा साझा की जाती है। कृपया कोई दूसरा नाम चुनें और पुनः प्रयास करें। (सेवा: अमेज़न S3; स्थिति कोड: 409; त्रुटि कोड: BucketAlreadyExists; अनुरोध आईडी: ...
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.AmazonS3ClientBuilder;
import com.amazonaws.services.s3.model.CreateBucketRequest;
import com.amazonaws.services.s3.model.Bucket;
/** S3 "hello world" example. */
public class S3Hello {
/** Name of hello-world bucket -- must be globally unique. The
* bucket namespace is shared by all users of the system.
*/
static final String BUCKET_NAME = "hello-world";
/** Creates bucket
* @param args Command line arguments
*/
public static void main(final String[] args) {
AmazonS3 s3 = AmazonS3ClientBuilder.defaultClient();
CreateBucketRequest request
= new CreateBucketRequest(BUCKET_NAME);
Bucket bucket = s3.createBucket(request);
System.out.println("S3 Hello World completed.");
}
}
इस उदाहरण के लिए निम्न निर्भरताओं की आवश्यकता है:
- जावा काम कर रहे कंसोल के साथ स्थापित किया गया।
- AWS जावा एसडीके स्थापित। https://aws.amazon.com/sdk-for-java/
- साख फ़ाइल
credentials
अपने घर निर्देशिका के अंतर्गत .aws में स्थापित। https://aws.amazon.com/developers/getting-started/java/ - S3 में व्यवस्थापक या 'बकेट बनाएँ' अधिकार रखने के लिए क्रेडेंशियल। http://docs.aws.amazon.com/AmazonS3/latest/dev/using-with-s3-actions.html#using-with-s3-actions-related-to-buckets
हेलो वर्ल्ड पॉवरशेल का उपयोग करना
यह उदाहरण एक त्रुटि की उम्मीद करता है, क्योंकि हैलो-विश्व बाल्टी पहले से मौजूद है और S3 एक वैश्विक नाम स्थान का उपयोग करता है।
New-S3Bucket -BucketName "hello-world"
न्यू-एस 3 बकेट: अनुरोधित बकेट नाम उपलब्ध नहीं है। बाल्टी नाम स्थान सिस्टम के सभी उपयोगकर्ताओं द्वारा साझा की जाती है। कृपया कोई दूसरा नाम चुनें और पुनः प्रयास करें।
यदि आप हैलो-वर्ल्ड को किसी ऐसी चीज़ से प्रतिस्थापित करते हैं जो अद्वितीय है, तो बाल्टी त्रुटि के बिना बनाई जाएगी, और आपको निम्न परिणाम मिलेगा:
CreationDate BucketName ------------ ---------- 3/30/2017 11:43:03 PM hello-world-832jklsdJF
इस उदाहरण के लिए निम्न निर्भरताओं की आवश्यकता है:
शक्ति कोशिका। Http://docs.aws.amazon.com/powershell/latest/userguide/pstools-getting-set-up.html देखें
साख। इन्हें AWS कंसोल का उपयोग करके बनाया जा सकता है। PowerShell का उपयोग करके इन्हें प्रबंधित करने के कई विकल्प हैं। नीचे सेटअप के लिए एक सरल उदाहरण है। Http://docs.aws.amazon.com/powershell/latest/userguide/specifying-your-aws-credentials.html देखें
PS C:\> Set-AWSCredentials -AccessKey AKIAIOSFODNN7LAJD8A -SecretKey "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEjw9JFKS3" -StoreAs default