繁体   English   中英

无法从s3存储桶读取大型csv文件到python

[英]unable to read large csv file from s3 bucket to python

所以我试图从s3存储桶中加载一个csv文件。 以下是代码

import pandas as pd
import boto3
import io

s3_file_key = 'iris.csv'
bucket = 'data'

s3 = boto3.client('s3')
obj = s3.get_object(Bucket=bucket, Key=s3_file_key)

initial_df = pd.read_csv(io.BytesIO(obj['Body'].read()))

工作正常。 iris.csv的大小仅为3kb。
现在,我尝试读取大小为6gb的“ mydata.csv”,而不是iris.csv。

我收到以下错误:

ClientError:调用GetObject操作时发生错误(AccessDenied):访问被拒绝

因为我将数据放在第一位,所以我无法理解访问可能是一个问题。 我也可以从同一位置读取“ iris.csv”。 有任何想法吗?

您可以执行以下几项操作:

  1. 确保S3存储桶的区域与您的AWS配置相同。 否则,它将无法正常工作。 S3服务是全局的,但是每个存储桶都是在特定区域中创建的。 AWS客户端应使用相同的区域。
  2. 确保资源的访问密钥具有正确的权限集。
  3. 确保文件实际上已上传。
  4. 确保没有应用撤销访问权限的存储桶策略。
  5. 您可以启用登录S3存储桶以查看错误。
  6. 确保存储桶未版本化。 如果已版本化,请指定对象版本。
  7. 确保对象已定义了正确的ACL集。
  8. 如果对象已加密,请确保您有权使用该KMS密钥解密该对象。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM