当前位置: 首页 > 知识库问答 >
问题:

使用boto3列出存储桶的内容

蒋典
2023-03-14

在S3中,我如何使用Bot3查看桶中的内容?(即执行“ls”)?

执行以下操作:

import boto3
s3 = boto3.resource('s3')
my_bucket = s3.Bucket('some/path/')

返回:

s3.Bucket(name='some/path/')

我怎么看它的内容?


共有3个答案

陈弘厚
2023-03-14

我假设您单独配置了身份验证。

import boto3
s3 = boto3.resource('s3')

my_bucket = s3.Bucket('bucket_name')

for file in my_bucket.objects.all():
    print(file.key)
杨腾
2023-03-14

这类似于“ls”,但它不考虑前缀文件夹约定,将列出bucket中的对象。由阅读器过滤掉作为键名一部分的前缀。

在Python 2中:

from boto.s3.connection import S3Connection

conn = S3Connection() # assumes boto.cfg setup
bucket = conn.get_bucket('bucket_name')
for obj in bucket.get_all_keys():
    print(obj.key)

在Python 3中:

from boto3 import client

conn = client('s3')  # again assumes boto.cfg setup, assume AWS S3
for key in conn.list_objects(Bucket='bucket_name')['Contents']:
    print(key['Key'])
郎正初
2023-03-14

查看内容的一种方法是:

for my_bucket_object in my_bucket.objects.all():
    print(my_bucket_object)
 类似资料:
  • 问题内容: 如何查看S3中的存储桶中的内容?(即是)? 执行以下操作: 返回: 我如何看其内容? 问题答案: 查看内容的一种方法是:

  • 问题内容: 我这样做是读取了S3存储桶中的文件名 现在,我需要获取文件的实际内容,类似于。什么是最好的方法? 问题答案: boto3提供了一种资源模型,该资源模型使诸如迭代对象之类的任务变得更加容易。不幸的是,StreamingBody不提供或。

  • 我试图列出我存储项目中的所有(甚至一些)桶。如果我知道一个水桶的名字,“水桶”功能就会得到这个水桶。但是我不能用"桶"来列出项目中的桶: 我的服务帐户具有“存储管理员”角色。我很困惑。注意:我使用的是PHP5.6,以防万一。Composer在安装GCS库时没有遇到问题,所以我认为这没问题。 好吧,我一定是错过了什么。使用我得到一个桶的测试用例,我使用了$one_桶- 进一步信息:当点击迭代器(fo

  • 问题内容: 我想知道boto3中是否存在密钥。我可以循环存储桶中的内容并检查密钥是否匹配。 但这似乎更长了,而且太过分了。Boto3官方文档明确说明了如何执行此操作。 可能是我缺少明显的东西。有人可以指出我如何实现这一目标。 问题答案: Boto 2的对象曾经有一种方法,该方法通过执行HEAD请求并查看结果来检查密钥是否在S3上存在,但似乎不再存在。您必须自己做: 对单个键执行HEAD请求,这是快

  • 我试图打印桶中的所有对象,但我得到一个错误。 线程“main”com中出现异常。amazonaws。服务。s3.型号。AmazonS3异常:状态代码:301,AWS服务:Amazon S3,AWS请求ID:758A7CBF1A29FD74,AWS错误代码:PermanentRedirect,AWS错误消息:您尝试访问的存储桶必须使用指定的endpoint寻址。请将所有未来的请求发送到此终结点。,S

  • 问题内容: 我需要使用Boto3从S3获取项目列表,但我希望它以相反的顺序返回它,而不是返回默认的排序顺序(降序)。 我知道您可以通过awscli来做到这一点: 及其可通过UI控制台执行(不确定是在客户端还是在服务器端完成) 我似乎看不到如何在Boto3中执行此操作。 我目前正在获取所有文件,然后进行排序…但是这似乎有些过分,尤其是如果我只关心10个左右的最新文件时。 筛选器系统似乎只接受s3的前