微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决版本升级后接收拒绝访问的 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 举报,一经查实,本站将立刻删除。