问题标签 [python-s3fs]

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 投票
0 回答
271 浏览

python - 版本升级后 S3F 收到 Access Denied

我正在生成一个 botocore 会话,该会话承担一个角色,该角色使我可以访问不同帐户中的 s3 存储桶。基于这个角色创建一个 s3fs 文件系统让我可以操作这些数据。这是相关的代码部分。role_session是具有适当凭据的 botocore 会话。

这适用于 s3fs = 0.4.2 的 SageMaker 笔记本实例。我们称这个实例为 A。

但是在具有最新版本 s3fs = 2021.07.0 的笔记本实例上,相同的代码会给出拒绝访问错误。让我们将此实例称为 B。这是完整的跟踪:

实例 A 和实例 B 之间还有其他版本差异,包括 python/botocore,但我不确定它们是否是一个问题。这是因为在实例 A 上升级 s3fs 会导致代码停止工作,而在实例 B 上降级 s3fs 会使代码工作。此外,在 botocore 之上创建 s3 客户端在任一版本中都可以正常工作。

除了 s3fs 降级之外,谁能指出如何解决这个问题?我无法真正避免 s3fs,因为它已用于其他各个部分。

0 投票
0 回答
314 浏览

python - s3fs.S3FileSystem() 是否总是需要特定的区域设置?

我想要做的是从我的 EC2 机器连接一个 s3 存储桶。

如果我不设置endpoint_urlin会出现此错误s3fs.S3FileSystem()

但是,我能够修复它添加endpoint_urlins3fs.S3FileSystem()以指定区域。

我想知道 s3fs 是否需要特定区域,因为文档中没有严格的指导..!

提前感谢您的帮助。

0 投票
1 回答
256 浏览

python - 如何将 numpy 数组作为 csv 写入 S3

我有一个带有 2 列的 numpy ndarray,如下所示

我想csv使用 s3fs 直接将它写为 S3 中的列名(不创建本地 csv 文件)。如果我有一个数据框,我知道该怎么做,并且可以将我的 numpy 转换为数据框。但我想要一种无需将 numpy 数组转换为数据框的方法。

下面是我的代码

我想在不将 NumPy 数组转换为 dataframe 的情况下做到这output一点dftowrite。有什么建议吗?

0 投票
1 回答
260 浏览

python-3.x - 胶水python shell作业无法导入s3fs

我是 Glue 工作的新手,并按照以下链接配置 whl 文件的方式

AWS Glue 中 s3fs 库的导入失败

我收到 AWS Glue Python - 3 作业的以下错误

0 投票
1 回答
3614 浏览

python - s3fs 突然停止在 Google Colab 中工作,出现错误“AttributeError: module 'aiobotocore' has no attribute 'AioSession'”

昨天 Google Colab 中的以下单元格序列将起作用。

在此处输入图像描述

(我正在使用colab-env从 Google Drive 导入环境变量。)

今天早上,当我运行相同的代码时,出现以下错误。

在此处输入图像描述

这似乎是 s3fs 和 aiobotocore 的一个新问题。我对 Google Colab 和库版本依赖问题有一些经验,我以前通过按特定顺序升级库来解决这些问题:

但是今天早上我有点卡住了这个。它正在影响我所有的 Google Colab 笔记本,所以我认为它可能正在影响其他使用 Google Colab 存储在 Amazon AWS S3 中的数据的人。

安装的 s3fs 版本是 2021.07.0,似乎是最新的。

在此处输入图像描述

0 投票
1 回答
95 浏览

python - 使用 boto 来压缩文件而不是 sfs3

我试图在 AWS Lambda 函数上运行类似的东西,但它会引发错误,因为它无法安装 s3fs 模块。另外,我在代码的其余部分使用 boto,所以我想坚持使用 boto。我如何也可以使用 boto 呢?

基本上,我正在从“/tmp/path”打开/读取文件,对其进行 gzip 压缩,然后保存到 S3 存储桶

编辑:

testList 中的每个项目看起来像这样 "/tmp/your_file.txt"

0 投票
0 回答
608 浏览

python-3.x - Python3:ImportError:无法从“botocore.httpsession”导入名称“InvalidProxiesConfigError”

我的用例是我试图将我的数据帧写入我s3fs==2015.5.0使用 pip3 安装的 S3 存储桶。现在当我运行代码时

它返回以下错误:

我的 requirements.txt 文件是这样的:

pip3 install -r requirements.txt安装软件包但也返回

由于某种原因,它现在才开始发生。我之前使用过类似的软件包,并且运行良好。任何想法为什么它现在不起作用?

0 投票
2 回答
122 浏览

amazon-web-services - Snowflake 无法在没有访问密钥的情况下从 S3 下载文件,而 s3fs 能够从 S3 下载该文件

我有一个指向公共文件的 S3 URL,类似于以下 URL 示例:s3://test-public/new/solution/file.csv (这不是实际链接。只是我正在使用的一个接近示例)

我可以在 python 脚本中使用s3fs模块读取文件,而无需放置任何 AWS 密钥 ID 或 AWS 密钥,如下所示:

但是,当我尝试从 S3 到 Snowflake 阶段或从Table -> Load table读取相同的文件时,Snowlake 报告缺少 AWS 密钥 ID 和 AWS 密钥,尽管这些字段是可选的

在此处输入图像描述

有没有一种方法可以在没有任何 AWS 凭证的情况下将 S3 中的公共文件读取到雪花表中(与 s3fs 一样)?

0 投票
0 回答
119 浏览

python - 使用 pandas/s3fs 读取 S3 存储桶时,如何从 S3 获取异常?

我正在使用 pandas (1.3.4) 和 s3fs (2021.10.1) 从 S3 存储桶中读取 parquet 文件,如下所示:

此读取是作为 API 后台进程的一部分定期完成的,因此我想处理由任何间歇性 S3 服务不可用引起的异常。

问题在于 s3fs 将 S3 ClientErrors 转换为本地文件系统错误。例如 NoSuchKey 变成 FileNotFoundError (参见https://github.com/dask/s3fs/blob/main/s3fs/errors.py)。

我想获得原始的 S3 异常,因为转换后的异常可能是非特定的或具有误导性的。

有趣的是,s3fs 源代码似乎表明这是可以通过__cause__ 属性实现的:

但是,通过传递无效路径自己尝试时,__cause__ None

我错过了什么吗?

0 投票
2 回答
121 浏览

amazon-s3 - s3fs 和 fsspec 版本的工作组合是什么?ImportError:无法从“fsspec.asyn”导入名称“maybe_sync”

我使用的是最新版本的s3fs-0.5.2和fsspec-0.9.0,在导入s3fs的时候,遇到如下错误:

什么是 s3fs 和 fsspec 的工作组合版本?