python - B33 S3 से कनेक्ट करते समय क्रेडेंशियल कैसे निर्दिष्ट करें?




amazon-web-services amazon-s3 (2)

Boto3.resource () का उपयोग करते समय क्रेडेंशियल्स को संग्रहीत करने के कई तरीके हैं। मैं स्वयं AWS CLI विधि का उपयोग कर रहा हूं। यह पूरी तरह से काम करता है।

https://boto3.amazonaws.com/v1/documentation/api/latest/guide/configuration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAILys

इस तरह से S3 से जुड़ने पर boto पर मैं अपनी साख निर्दिष्ट करता था:

import boto
from boto.s3.connection import Key, S3Connection
S3 = S3Connection( settings.AWS_SERVER_PUBLIC_KEY, settings.AWS_SERVER_SECRET_KEY )

मैं तब S3 का उपयोग अपने कार्यों को करने के लिए कर सकता था (मेरे मामले में एक बाल्टी से किसी वस्तु को हटाने के लिए)।

बोटो 3 के साथ मुझे मिले सभी उदाहरण ऐसे हैं:

import boto3
S3 = boto3.resource( 's3' )
S3.Object( bucket_name, key_name ).delete()

मैं अपनी साख को निर्दिष्ट नहीं कर सका और इस प्रकार सभी प्रयास InvalidAccessKeyId त्रुटि के साथ विफल हो InvalidAccessKeyId

मैं बोटो 3 के साथ साख कैसे निर्दिष्ट कर सकता हूं?


आप एक session बना सकते हैं:

import boto3
session = boto3.Session(
    aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY,
    aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY,
)

फिर S3 संसाधन प्राप्त करने के लिए उस सत्र का उपयोग करें:

s3 = session.resource('s3')




boto3