दिलचस्प पोस्ट
केवल सी # में दिनांक के लिए एक प्रकार – कोई दिनांक प्रकार क्यों नहीं है? IList <टी> पर द्विआधारी खोज कैसे करें? कैसे जावा में एक सामान्य सरणी बनाने के लिए? कस्टम प्राधिकरण MVC4 वेब एपीआई में पोस्ट प्राप्त करना या पैरामीटर प्राप्त करना अजगर की मुख्य विधि को समझना JQuery में HTML दस्तावेज़ का हिस्सा निकालें बहुभुज ड्राइंग और गूगल मानचित्र एपीआई v3 के साथ समन्वय करना मूल्य की चौड़ाई के लिए ऑटो-स्केलिंग इनपुट ? मैं एक छवि को उसके यूआरएल से एसडी कार्ड में कैसे स्थानांतरित कर सकता हूं? यदि वैरिएबल नाम स्ट्रिंग के रूप में संग्रहीत है तो एक वैरिएबल वैल्यू कैसे प्राप्त करें? मुख्य विंडो बंद करते समय WPF ऐप बंद नहीं होता ऑपरेटिंग सिस्टम के बिना प्रोग्राम कैसे चलाया जाता है? एनएटी में कचरा संग्रहण को समझना Rails पर रूबी में मॉडल के भीतर से current_user तक पहुंच सर # पर सरणी का उपयोग कब किया जाए?

आपके द्वारा प्रदान की गई प्राधिकरण तंत्र समर्थित नहीं है। कृपया एडब्ल्यूएस 4-एचएमएसी-एसएचए 256 का उपयोग करें

मुझे एक त्रुटि मिलती है AWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. AWS::S3::Errors::InvalidRequest The authorization mechanism you have provided is not supported. Please use AWS4-HMAC-SHA256. जब मैं नई फ्रैंकफर्ट क्षेत्र में एस 3 बाल्टी अपलोड फ़ाइल का प्रयास करता हूं। सभी US Standard क्षेत्र के साथ ठीक से काम करता है

स्क्रिप्ट:

 backup_file = '/media/db-backup_for_dev/2014-10-23_02-00-07/slave_dump.sql.gz' s3 = AWS::S3.new( access_key_id: AMAZONS3['access_key_id'], secret_access_key: AMAZONS3['secret_access_key'] ) s3_bucket = s3.buckets['test-frankfurt'] # Folder and file name s3_name = "database-backups-last20days/#{File.basename(File.dirname(backup_file))}_#{File.basename(backup_file)}" file_obj = s3_bucket.objects[s3_name] file_obj.write(file: backup_file) 

ए वीएस-एसडीके (1.56.0)

इसे कैसे जोड़ेंगे?

धन्यवाद।

Solutions Collecting From Web of "आपके द्वारा प्रदान की गई प्राधिकरण तंत्र समर्थित नहीं है। कृपया एडब्ल्यूएस 4-एचएमएसी-एसएचए 256 का उपयोग करें"

एडब्ल्यूएस 4-एचएमएसी-एसएचए 256, जिसे हस्ताक्षर संस्करण 4 के रूप में भी जाना जाता है, ("वी 4") एस 3 द्वारा समर्थित दो प्रमाणन योजनाओं में से एक है।

सभी क्षेत्रों V4 समर्थन करते हैं, लेकिन यूएस-मानक, और कई – लेकिन सभी नहीं – अन्य क्षेत्रों, अन्य, पुरानी योजना, हस्ताक्षर संस्करण 2 ("V2") का भी समर्थन करते हैं।

http://docs.aws.amazon.com/AmazonS3/latest/API/sig-v4-authenticating-requests.html के अनुसार … जनवरी, 2014 के बाद तैनात नए एस 3 क्षेत्रों में केवल V4 का समर्थन होगा

चूंकि फ्रैंकफर्ट को 2014 में देर से पेश किया गया था, यह वी 2 का समर्थन नहीं करता है, जो कि यह त्रुटि बताती है कि आप उपयोग कर रहे हैं।

http://docs.aws.amazon.com/AmazonS3/latest/dev/UsingAWSSDK.html बताता है कि कैसे विभिन्न एसडीके में वी 4 को सक्षम किया जा सकता है, यह मानते हुए कि आप उस एसडीके का प्रयोग कर रहे हैं जिसमें क्षमता है।

मुझे लगता है कि एसडीके के कुछ पुराने संस्करण इस विकल्प का समर्थन नहीं कर सकते हैं, इसलिए यदि उपरोक्त मदद नहीं करता है, तो आपको उस एसडीके के नए रिहाई की आवश्यकता हो सकती है जो आप उपयोग कर रहे हैं।


¹ US Standard एस us-east-1 क्षेत्रीय तैनाती के लिए पूर्व नाम है जो कि us-east-1 क्षेत्र में आधारित है जब से यह उत्तर मूल रूप से लिखा गया था, तब से "अमेज़ॅन एस 3 ने यूएस के पूर्व क्षेत्र (एन वर्जीनिया) क्षेत्र में अमेरिकी मानक क्षेत्र का नाम बदलकर एडब्ल्यूएस क्षेत्रीय नामकरण सम्मेलनों के अनुरूप किया।" सभी व्यावहारिक उद्देश्यों के लिए, यह केवल नामकरण में एक परिवर्तन है।

नोड के साथ, कोशिश करें

 var s3 = new AWS.S3( { endpoint: 's3-eu-central-1.amazonaws.com', signatureVersion: 'v4', region: 'eu-central-1' } ); 

आपको signatureVersion: 'v4' सेट करना चाहिए signatureVersion: 'v4' config में नए साइन संस्करण का उपयोग करने के लिए:

 AWS.config.update({ signatureVersion: 'v4' }); 

JS एसडीके के लिए काम करता है

boto3 ( Python SDK ) का उपयोग करने वाले लोगों के लिए नीचे कोड का उपयोग करें

 from botocore.client import Config s3 = boto3.resource( 's3', aws_access_key_id='xxxxxx', aws_secret_access_key='xxxxxx', config=Config(signature_version='s3v4') ) 

PHP एसडीके के साथ समान समस्या, यह काम करता है:

$s3Client = S3Client::factory(array('key'=>YOUR_AWS_KEY, 'secret'=>YOUR_AWS_SECRET, 'signature' => 'v4', 'region'=>'eu-central-1'));

महत्वपूर्ण बिट signature और region

जावा में मुझे एक संपत्ति सेट करना था

 System.setProperty(SDKGlobalConfiguration.ENFORCE_S3_SIGV4_SYSTEM_PROPERTY, "true") 

और इस क्षेत्र को s3Client उदाहरण में जोड़ें

 s3Client.setRegion(Region.getRegion(Regions.EU_CENTRAL_1)) 

थम्बोर- एएएस के लिए, जो बिटो कॉन्फिग का उपयोग करती थी, मुझे इसे $AWS_CONFIG_FILE

 [default] aws_access_key_id = (your ID) aws_secret_access_key = (your secret key) s3 = signature_version = s3 

तो जो कुछ भी बिना परिवर्तन के सीधे बोटो का इस्तेमाल करता है, यह उपयोगी हो सकता है

एंड्रॉइड एसडीके के लिए, सेट एन्डपॉइंट समस्या हल करती है, हालांकि इसे हटा दिया गया है।

 CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider( context, "identityPoolId", Regions.US_EAST_1); AmazonS3 s3 = new AmazonS3Client(credentialsProvider); s3.setEndpoint("s3.us-east-2.amazonaws.com"); 

Boto3 के साथ, यह कोड है:

 s3_client = boto3.resource('s3', region_name='eu-central-1') 

तथा

 s3_client = boto3.client('s3', region_name='eu-central-1')