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