簡體   English   中英

使用 Python 將 csv 大文件上傳到雲存儲

[英]Upload large csv file to cloud storage using Python

您好,我正在嘗試上傳一個大的 csv 文件,但出現以下錯誤:

HTTPSConnectionPool(host='storage.googleapis.com', port=443): Max retries exceeded with url: /upload/storage/v1/b/de-bucket-my-stg/o?uploadType=resumable&upload_id=ADPycdsyu6gSlyfklixvDgL7RLpAQAg6REm9j1ICarKvmdif3tASOl9MaqjQIZ5dHWpTeWqs2HCsL4hoqfrtVQAH1WpfYrp4sFRn (Caused by SSLError(SSLWantWriteError(3, '操作未完成(寫入)(_ssl.c:2396)')))

有人可以幫我嗎?

下面是我的代碼:

   import os
    import pandas as pd
    import io
    import requests
    from google.cloud import storage
    
    try:
        url = "https://cb-test-dataset.s3.ap-south-1.amazonaws.com/analytics/analytics.csv"
        cont = requests.get(url).content
        file_to_upload = pd.read_csv(io.StringIO(cont.decode('utf-8')))
    except Exception as e:
        print('Error getting file: ' +  str(e))
    
    try:
        os.environ['GOOGLE_APPLICATION_CREDENTIALS'] = 'C:/Users/haris/Desktop/de-project/xxx.json' --xxx is replaced here.
        storage_client = storage.Client()
        bucket_name = storage_client.get_bucket('de-bucket-my-stg')
        blob = bucket_name.blob('analytics.csv')
        blob.upload_from_string(file_to_upload.to_csv(),'text/csv')
    except Exception as e:
        print('Error uploading file: ' +  str(e))

文檔中所述,

我的建議是在發送文件之前對文件進行 gzip 壓縮。 文本文件具有高壓縮率(高達 100 倍),您可以將gzip 文件直接提取到 BigQuery 中而無需解壓縮它們

上傳到 Cloud Storage 最快的方法是使用compose API 和復合對象。

有關詳細信息,您可以參考 OP 面臨類似錯誤的stackoverflow 線程

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM