问题标签 [boto3]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
115 浏览

amazon-web-services - 在需要 sudo 的 elasticbeanstalk 上安装 python 库

我正在尝试为使用 aws elastic-beanstalk 部署的 django 项目安装 boto3。该库要求我以 sudo 身份运行,因此给了我一个权限被拒绝错误。

我只是将 boto3==1.2.1 放在我的 requirements.txt 文件中。

谢谢!

0 投票
1 回答
382 浏览

python - Python boto3 s3 库返回不同的字典到官方文档

我发现 boto3 的官方文档(https://boto3.readthedocs.org/en/latest/reference/services/s3.html#S3.Bucket.create)与实际返回的内容之间存在令人沮丧的不匹配.

只是为了确保,我使用的是 boto3 1.2.1 和 botocore 1.3.2(都安装了 pip)。

我专门谈论使用以下boto3.Session方法创建存储桶:

我在文档中被告知该s3.Bucket('testbucket').create()命令返回的字典看起来像

但相反,我得到了一个看起来像这样的字典:

如果我尝试通过调用它的delete()方法来删除一个 S3 对象,我也会得到类似的东西,例如:

我在哪里得到:

而不是(https://boto3.readthedocs.org/en/latest/reference/services/s3.html#S3.Object.delete):

我知道 boto3 是 botocore 库的一个相关包装器,而RequestID我要返回的字典中的键最终来自botocore/parsers.py. 我理解createreturn 因为它实际上有额外的信息,但我不明白的是put_object()方法 return不包含任何类似于文档的内容

我正在努力解决的是官方文档是否对我撒谎。

0 投票
4 回答
43459 浏览

proxy - 如何在 boto3 中使用 HTTP/HTTPS 代理?

在旧库上,打开连接时使用 、 和 参数非常简单boto。但是,我找不到任何等效的方式以编程方式在 boto3 上定义代理参数。:(proxyproxy_portproxy_userproxy_pass

0 投票
2 回答
1388 浏览

python - 如何使用 boto3 从名称中带有句点 (.) 的存储桶访问密钥?

语境

我正在尝试获取所有存储桶的加密状态以获取安全报告。但是,由于加密是基于密钥级别的,我想遍历所有密钥并获得一般加密状态。例如,“是”是所有密钥都被加密,“否”如果没有被加密,“部分”是一些被加密。
我必须使用 boto3,因为 boto 存在一个已知问题,即每个密钥的加密状态始终返回 None。看这里。

问题

我正在尝试使用 boto3 迭代每个存储桶中的所有键。以下代码可以正常工作,直到它遇到名称包含句点的存储桶,例如“my.test.bucket”。

当它遇到名称中带有句点的存储桶时,它会在bucket.objects.all()被调用时抛出此异常,告诉我将所有请求发送到特定端点。这个端点可以在抛出的异常对象中找到。

我尝试过的事情

  • 将 endpoint_url 参数设置为异常响应中指定的存储桶端点,例如s3_resource = session.resource('s3', endpoint_url='my.test.bucket.s3.amazonaws.com')
  • 指定存储桶所在的区域,例如s3_resource = session.resource('s3', region_name='eu-west-1')

我相信这个问题类似于boto中的这个stackoverflow问题,它通过在s3Connection构造函数中设置calling_format参数来解决这个问题。不幸的是,我不能使用 boto(见上文)。

更新

这就是最终为我工作的东西。这不是最优雅的方法,但它有效 =)。

0 投票
1 回答
45603 浏览

python - 如何在亚马逊网络服务中从 boto3 生成 url

我在 s3 中有一个 Bucket,我正在尝试提取其中图像的 url。

我正在使用 boto3,而 boto3 似乎没有实现生成 url 方法。

他们有一个核心方法,可以生成这样的 url,

我被迫做的一件事是,我必须使用会话对象将参数与每个请求一起发送。并且上述方法不允许我设置会话变量(即 ..aws 凭据)

我能得到的最接近的是这个

这让我得到了 amazon s3 对象,它是一个名为

我可以通过这种方式获取图片的网址吗?

0 投票
1 回答
2204 浏览

python - boto3 方法参数的默认值

我想以编程方式编写一个调用 boto3 方法并更改方法内的默认参数的方法。

例如,如果日志设置为 True,我想使用我的日志存储桶。否则,不要记录它。像这样的东西:

因此,对于默认值,我使用无。但是,boto3 需要一个字符串。我尝试了默认的空字符串,它不是有效值

我知道如果我不指定 logURI,它就不会被存储。所以我可以用 if 语句来做,像这样:

但这是可怕的方式。LogUri 只是一个例子。我希望能够更改其他参数。我就是不能做出那些嵌套的 if。

我可以使用 boto3 中的各种类型(如字符串)的默认值吗?


编辑 1

从下面的第一条评论, http://boto3.readthedocs.org/en/latest/guide/events.html#provide-client-params

有趣的 API。虽然没有很好的记录。他们的 s3 clistnt 示例工作正常,

然后反应很好,我也看到打印了“你好”。

但是现在我尝试为 emr 的 run_job_flow 做一个例子:

当我运行它时,我得到:输入中缺少必需的参数:“名称”

我是否以某种方式使用了错误的语法?我确实使用了从 current_emr.meta.method_to_api_mapping 获得的 RunJobFlow 也许它不是为 emr 提供客户端参数?

我也没有看到打印“你好”

0 投票
7 回答
64430 浏览

amazon-web-services - 通过 aws Lambda 使用 boto3 拒绝访问

我使用构建的数据处理管道

S3 + SNS + Lambda

因为 S3 无法将通知发送到其存储区域之外,所以我利用 SNS 将 S3 通知发送到其他区域的 Lambda。

lambda 函数编码为

当我运行保存和测试时,出现以下错误

我配置了 lambda 角色

并在我的目标存储桶上设置存储桶策略

看来我没有好好制定政策。

0 投票
2 回答
10730 浏览

amazon-web-services - 如何配置与boto3内联的授权机制

我在 aws lambda 中使用 boto3 来感染位于法兰克福地区的 S3 中的对象。

v4 是必要的。否则将返回以下错误

配置signature_version的实现方法http://boto3.readthedocs.org/en/latest/guide/configuration.html

但由于我使用的是 AWS lambda,因此我无权访问底层配置文件

我的 AWS lambda 函数的代码

是否可以在此代码中配置 signature_version ?以会话为例。或者有什么解决方法吗?

0 投票
1 回答
770 浏览

python - 解压缩超大文件时遇到问题

我收到了许多压缩文件,但解压缩后的文件大小为 30GB+,并且已在 Windows 中压缩。我正在尝试使用 EC2 实例创建一个系统来解压缩这些,但我一直在最大化内存(错误IOError: [Errno 28] No space left on device)。我的解压脚本如下:

有没有更好的解压文件的方法?我尝试流式传输它,但由于最初压缩的方式,这很可能不起作用。

0 投票
1 回答
3443 浏览

python - 您如何使用 Boto 3 创建角色和策略?

如何使用 Boto 3 创建角色和策略?我已经阅读了文档,但仍然无法弄清楚如何做到这一点。