簡體   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