2017-08-31 29 views
1

在博託我用來指定我的憑據連接到S3時,以這樣的方式:如何在連接到boto3 S3時指定憑證?

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

我可以再使用S3來執行我的操作(在我的情況下,從一個水桶刪除的對象)。

隨着boto3所有我發現的例子,例如:

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

我不能指定我的憑據,因此,所有的嘗試失敗,InvalidAccessKeyId錯誤。

如何使用boto3指定憑證?

+0

這樣的回答可以幫助你:https://stackoverflow.com/a/36913771/2681632 –

+0

看到官方文檔中的「配置憑據」一節:https://boto3.readthedocs.io/en/最新的/ guide/configuration.html –

回答

2

您可以創建一個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') 
+1

作品,我會把它作爲答案。他們爲什麼不把它作爲明顯的方式記錄下來? –

1

可以用新的會話獲取客戶端可以直接像下面。

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 
        )