বোটো 3 এস 3 এর সাথে সংযোগ করার সময় শংসাপত্রগুলি কীভাবে নির্দিষ্ট করবেন?


105

এস-তে সংযোগ করার সময় বোটোতে আমি আমার শংসাপত্রগুলি উল্লেখ করতাম:

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ত্রুটি সহ ব্যর্থ হয় ।

বোটো 3 এর সাথে আমি শংসাপত্রগুলি কীভাবে নির্দিষ্ট করতে পারি?


এই উত্তরটি আপনাকে সাহায্য করতে পারে stackoverflow.com/a/36913771/2681632
— Ilja Everilä

4
অফিসিয়াল ডকুমেন্টেশনে "শংসাপত্রগুলির কনফিগারেশন" বিভাগটি দেখুন: boto3.readthedocs.io/en/latest/guide/configration.html
— মার্ক

উত্তর:


162

আপনি একটি সেশন তৈরি করতে পারেন :

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

তারপরে একটি এস 3 সংস্থান পেতে সেই সেশনটি ব্যবহার করুন:

s3 = session.resource('s3')

24
কাজ করে, আমি উত্তর হিসাবে এটি গ্রহণ করব। কেন পৃথিবীতে তারা এটিকে করার সুস্পষ্ট উপায় হিসাবে এটি নথিভুক্ত করে না? !!
— রবার্ট ব্র্যাক্স

4
উপরোক্ত আলোচনা একটি মন্তব্যে উল্লেখ, এই হল মধ্যে আসলে ডকুমেন্টেশন ।
— মোট করুন

70

আপনি clientনীচের মত সরাসরি নতুন সেশন সহ একটি পেতে পারেন ।

 s3_client = boto3.client('s3', 
                      aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, 
                      aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY, 
                      region_name=REGION_NAME
                      )

9
এটি একটি এস 3 ক্লায়েন্ট পাওয়ার জন্য কাজ করে তবে ওপি পরিবর্তে একটি এস 3 সংস্থান চেয়েছিল ।
— আলাসডায়ার

আমি @ আলাসডায়ারের সাথে একমত দস্তাবেজগুলি ক্লায়েন্টের সাথে কীভাবে কিছু করতে পারে তা দেখায় না এবং আপনিও করেন না, সুতরাং উত্তরটি কীভাবে প্রাসঙ্গিক তা আমি দেখতে পাই না।
— সেরিন

আমি এটি চেষ্টা করেছিলাম কিন্তু এটি আমাকে "শংসাপত্রগুলি সনাক্ত করতে অক্ষম" ত্রুটি দেয়..আমি এর আগে পরীক্ষা করার জন্য previously / .aws ফোল্ডারটি সরিয়ে দিয়েছিলাম কারণ আমি জানি যে
— বोटो

6

এটি পুরানো তবে এটি আমার রেফারেন্সের জন্য এখানে রাখছে। boto3.resource কেবলমাত্র ডিফল্ট সেশনটি প্রয়োগ করছে, আপনি boto3.resource সেশনের বিশদটি দিয়ে যেতে পারেন।

Help on function resource in module boto3:

resource(*args, **kwargs)
    Create a resource service client by name using the default session.

    See :py:meth:`boto3.session.Session.resource`.

https://github.com/boto/boto3/blob/86392b5ca26da57ce6a776365a52d3cab8487d60/boto3/session.py#L265

আপনি দেখতে পাচ্ছেন যে এটি কেবল বোটো 3.সেশন হিসাবে একই আর্গুমেন্ট গ্রহণ করে

import boto3
S3 = boto3.resource('s3', region_name='us-west-2', aws_access_key_id=settings.AWS_SERVER_PUBLIC_KEY, aws_secret_access_key=settings.AWS_SERVER_SECRET_KEY)
S3.Object( bucket_name, key_name ).delete()

5

আমি @ জাস্টাগ্যুর উত্তরটি প্রসারিত করতে চাই। যে পদ্ধতিটি আমি পছন্দ করি তা হ'ল AWS CLIএকটি কনফিগার ফাইল তৈরি করা। কারণটি হ'ল, কনফিগার ফাইল সহ, CLIবা SDKস্বয়ংক্রিয়ভাবে ~/.awsফোল্ডারে শংসাপত্রগুলির সন্ধান করবে । এবং ভাল জিনিসটি AWS CLIপাই অজগরে লেখা।

আপনি যদি পাইপই না পেয়ে থাকেন তবে তা ক্লিপ পেতে পারেন। টার্মিনাল থেকে ক্লাইপ সেট আপ করার পদক্ষেপগুলি এখানে

$> pip install awscli  #can add user flag 
$> aws configure
AWS Access Key ID [****************ABCD]:[enter your key here]
AWS Secret Access Key [****************xyz]:[enter your secret key here]
Default region name [us-west-2]:[enter your region here]
Default output format [None]:

এর পরে আপনি botoকীগুলি নির্দিষ্ট না করেই এবং এপিআইর যে কোনওটিকে অ্যাক্সেস করতে পারবেন (যদি না আপনি আলাদা শংসাপত্র ব্যবহার করতে চান)।


1

বোটো 3.সোর্স () ব্যবহার করার সময় শংসাপত্রগুলি সঞ্চয় করার জন্য অনেকগুলি উপায় রয়েছে। আমি নিজেই ডাব্লুএসএস সিএলআই পদ্ধতি ব্যবহার করছি। এটি পুরোপুরি কাজ করে।

https://boto3.amazonaws.com/v1/docamentation/api/latest/guide/configration.html?fbclid=IwAR2LlrS4O2gYH6xAF4QDVIH2Q2tzfF_VZ6loM3XfXsPAOR4qA-pX_qAIL

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.