python - 如何在 Python 中以编程方式获取 AWS S3 存储桶的内容
问题描述
我可以aws --profile minio s3 ls s3://aa/bb/
在终端中成功运行命令以获取 minio 上特定存储桶的内容,但是当我在 Python 中运行以下代码时,它返回一个空字符串。
import os
stream = os.popen('aws --profile minio s3 ls s3://aa/bb/')
stream.read()
当我更改第二行以便查询本地文件夹的内容时,例如stream = os.popen('ls /Users/cc/')
,该本地文件夹的内容也会成功打印。
当我使用 执行第一个命令os.system('aws --profile minio s3 ls s3://aa/bb/')
时,它256
作为输出返回。
那么如何在 Python 中以编程方式访问 minio 存储桶的内容呢?
解决方案
需要注意的是我没有使用过 minio,下面是我boto3
在 python 脚本中使用(AWS python sdk)来执行 CLI 命令的方法:
import boto3
session = boto3.session.Session(profile_name='minio')
client = session.client('s3')
response = client.list_objects_v2(
Bucket='aa',
Prefix='bb',
)
for item in response['Contents']:
print(item['Key'])
推荐阅读
- java - 实现 Comparator 的类在探测 spliterator().getComparator 时会产生 IllegalStateException
- angular - 如何防止 Angular 中特定模块的浏览器缓存
- python - 如何在 matplotlib 中的曲线之间进行插值?
- ffmpeg - FFmpeg:如何循环播放单帧视频以覆盖音轨的长度
- javascript - 从 Javascript 对象重新定义 MongoDB _id 属性
- java - 代号一 BrowserComponent 不工作
- php - android avd 连接到 localhost php 流明端口 8000
- c++ - C6385 从“ss”读取无效数据:可读大小为“352”字节,但可以读取“-176”字节
- apache-spark - 在 Databricks 中发布流式增量表
- vba - 如何防止嵌入式图表数据的“链接”丢失