Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 我可以匿名使用boto3吗?_Python_Amazon Web Services_Amazon S3_Boto_Boto3 - Fatal编程技术网

Python 我可以匿名使用boto3吗?

Python 我可以匿名使用boto3吗?,python,amazon-web-services,amazon-s3,boto,boto3,Python,Amazon Web Services,Amazon S3,Boto,Boto3,使用boto我可以通过传递anon=关键字参数连接到公共S3存储桶,而不需要凭据 s3 = boto.connect_s3(anon=True) 这是否可能与boto3一起执行?是。您的凭据用于对发送的所有请求进行签名,因此您要做的是将客户端配置为根本不执行签名步骤。您可以按如下方式执行此操作: import boto3 from botocore import UNSIGNED from botocore.client import Config s3 = boto3.client('s3

使用
boto
我可以通过传递
anon=
关键字参数连接到公共S3存储桶,而不需要凭据

s3 = boto.connect_s3(anon=True)

这是否可能与
boto3
一起执行?

是。您的凭据用于对发送的所有请求进行签名,因此您要做的是将客户端配置为根本不执行签名步骤。您可以按如下方式执行此操作:

import boto3
from botocore import UNSIGNED
from botocore.client import Config

s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))
# Use the client

对。您的凭据用于对发送的所有请求进行签名,因此您要做的是将客户端配置为根本不执行签名步骤。您可以按如下方式执行此操作:

import boto3
from botocore import UNSIGNED
from botocore.client import Config

s3 = boto3.client('s3', config=Config(signature_version=UNSIGNED))
# Use the client
禁用签名

import boto3

from botocore.handlers import disable_signing
resource = boto3.resource('s3')
resource.meta.client.meta.events.register('choose-signer.s3.*', disable_signing)
禁用签名

import boto3

from botocore.handlers import disable_signing
resource = boto3.resource('s3')
resource.meta.client.meta.events.register('choose-signer.s3.*', disable_signing)

从目前的boto3版本(1.9.168)来看,这些功能似乎都不起作用。这种黑客行为(得益于botocore上未修复的github问题)似乎确实起到了作用:

client = boto3.client('s3', aws_access_key_id='', aws_secret_access_key='')
client._request_signer.sign = (lambda *args, **kwargs: None)

从目前的boto3版本(1.9.168)来看,这些功能似乎都不起作用。这种黑客行为(得益于botocore上未修复的github问题)似乎确实起到了作用:

client = boto3.client('s3', aws_access_key_id='', aws_secret_access_key='')
client._request_signer.sign = (lambda *args, **kwargs: None)

如果存在凭据,是否会停止使用凭据?是否适合设置为默认值?它将停止在该客户端上使用凭据。您将需要另一个客户端来连接到受限制的s3存储桶。我的解决方案也是如此。注意:两种解决方案的作用完全相同。如果存在凭据,是否会停止使用凭据?是否适合设置为默认值?它将停止在该客户端上使用凭据。您将需要另一个客户端来连接到受限制的s3存储桶。我的解决方案也是如此。注意:两种解决方案的作用完全相同。似乎在boto3 1.9.251上对我有效。似乎在boto3 1.9.251上对我有效。最好用最新的解决方案更新此答案。最好用最新的解决方案更新此答案。