版本升级后接收拒绝访问的 S3Fs

问题描述

我正在生成一个 botocore 会话,该会话承担一个角色,该角色允许我访问不同帐户中的 s3 存储桶。创建基于此角色的 s3fs 文件系统让我可以操作该数据。这是相关的代码部分。 addLiquidity = async (tokenAmount: string,ethAmount: string) => { this.setState({ loading: true }); let exchangeAddress: string; try { const factory = this.state.factory; const tokenAddress = this.state.tokenAddress; // if Exchange not already created then we will get of address(0) 0x0000000000000000000000000000000000000000 exchangeAddress = await factory.methods.getExchange(tokenAddress).call(); if (exchangeAddress.startWith('0x00') { //Exchange address exchangeAddress = await factory.methods .createExchange(this.state.tokenAddress) .call(); console.log(`Èxchange created at: ${exchangeAddress}`); } console.log('address already created') } catch (err) { console.log(err); this.setState({ loading: false }); return; } 是具有适当凭据的 botocore 会话。

role_session

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

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

fs_session = role_session._session
fs = s3fs.S3FileSystem(session=fs_session)
bucket_name = "my_data_bucket"
print(fs.ls(bucket_name))

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

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

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)