Faça upload de um arquivo csv para o armazenamento do GCP, erro de tempo limite

Dataflower

Usei o código a seguir para fazer upload do arquivo para o armazenamento do GCP. Recebi um erro de tempo limite. O arquivo tem cerca de 1 GB. É um arquivo relativamente grande. Como resolver esse problema de tempo limite de upload?

Arquivo "/Users/xxxx/opt/anaconda3/lib/python3.8/site-packages/google/resumable_media/requests/_request_helpers.py", linha 136, em http_request return _helpers.wait_and_retry (func, RequestsMixin._get_status_code, retry_stry) Arquivo "/Users/xxxx/opt/anaconda3/lib/python3.8/site-packages/google/resumable_media/_helpers.py", linha 186, em wait_and_retry elevar erro Arquivo "/ Users / xxx / opt / anaconda3 / lib / python3.8 / site-packages / google / resumable_media / _helpers.py ", linha 175, em wait_and_retry response = func () File" /Users/xxxx/opt/anaconda3/lib/python3.8/site-packages/google/ auth / transport / requests.py ", linha 482, em request response = super (AuthorizedSession, self) .request (File" /Users/xxxxx/opt/anaconda3/lib/python3.8/site-packages/requests/sessions. py ", linha 542, na solicitação resp = self.send (prep,** send_kwargs) File "/Users/xxxxx/opt/anaconda3/lib/python3.8/site-packages/requests/sessions.py", linha 655, em send r = adapter.send (request, ** kwargs) File "/Users/xxxxxx/opt/anaconda3/lib/python3.8/site-packages/requests/adapters.py", linha 498, em enviar aumento ConnectionError (err, request = request) requests.exceptions.ConnectionError: ('Connection abortado. ', tempo limite (' Tempo limite da operação de gravação esgotado '))A operação de gravação atingiu o tempo limite '))A operação de gravação atingiu o tempo limite '))


def upload_file_to_gcs(local_filepath:str, bucket_name:str, gcs_filepath:str = None):
   
    if local_filepath == None: 
        raise ValueError("local_filepath cannot be None")

    if not os.path.isfile(local_filepath) or not os.path.exists(local_filepath):
        raise TypeError(f"{local_filepath} is not a file or does not exist.")

    if bucket_name == None: 
        raise ValueError("bucket cannot be None")

    if not bucket_exist(bucket_name):
        logging.info(f"Bucket {bucket_name} does not exist. Creating...")
        create_bucket(bucket_name)

    logging.info(f"Uploading {local_filepath} to GCS...")

    # Initialise a client
    storage_client = storage.Client()

    if gcs_filepath == None: 
        gcs_filepath = Path(local_filepath).name

    #create bucket object
    bucket = storage_client.get_bucket(bucket_name)

    #upload
    blob = bucket.blob(gcs_filepath)
    uploaded_file =  blob.upload_from_filename(local_filepath)

    logging.info(f"Uploaded {local_filepath} to {bucket_name} in GCS.")
    
    return vars(blob)



CloudBalancing

Você pode definir um tempo limite ao criar o cliente do intervalo. Dê uma olhada em - https://googleapis.dev/python/storage/latest/retry_timeout.html

Se você tiver uma conexão de Internet ruim, também pode brincar com o tamanho do bloco dos uploads (embora não seja recomendado)

from google.cloud import storage
storage.blob._DEFAULT_CHUNKSIZE = 5 * 1024* 1024  # 5 MB
storage.blob._MAX_MULTIPART_SIZE = 5 * 1024* 1024  # 5 MB

Este artigo é coletado da Internet.

Se houver alguma infração, entre em [email protected] Delete.

editar em
0

deixe-me dizer algumas palavras

0comentários
loginDepois de participar da revisão

Artigos relacionados

Por que upload_from_file Função de armazenamento em nuvem do Google gera erro de tempo limite?

Erro de autenticação ao fazer upload do arquivo para o armazenamento do Firebase

O upload de um arquivo para o armazenamento do firebase retorna o erro 403, apesar da alteração das regras do banco de dados

Como faço o upload de um arquivo SQLite grande para o armazenamento de objetos usando o Swift do OpenStack (via Python)

Tempo limite do Curl 28 ao tentar fazer upload de um arquivo para o sharepoint por meio de uma solicitação curl em um Jenkins Pipeline

Existe um limite para o tamanho do armazenamento local no tempo de execução do Bluemix Node JS?

O armazenamento do Firebase é um erro durante o upload para o banco de dados

Como fazer upload de um arquivo do meu armazenamento local para o S3?

Laravel, erro de upload de arquivo jQuery - "Chamada para um armazenamento de função membro () na matriz"

Como faço para carregar um arquivo para o armazenamento de blobs do Azure a partir de uma exibição MVC

Como faço para implantar um arquivo de despacho em um projeto do GCP sem obter um erro interno sem detalhes

Como faço para testar uma função de nuvem do Google que usa um upload de armazenamento para acionar?

Gravar um arquivo csv do R Notebook em Databricks para o armazenamento de blob do Azure?

Como evitar o tempo limite de conexão ociosa durante o upload de um arquivo grande?

Provisionador de arquivo Terraform para carregar na VM do Azure usando WinRM: Erro: tempo limite de i / o

Provisionador de arquivo Terraform para carregar na VM do Azure usando WinRM: Erro: tempo limite de i / o

Upload de um arquivo para o GCP usando gsutil

No flutter, depois de fazer o upload de um arquivo para o armazenamento do firebase, como obtenho o URL público?

Como obter um erro de upolad rejeitado devido à regra de limite de tamanho de arquivo do armazenamento do Firebase

Faça upload de um arquivo do selecionador de imagens nativas Reagentes para o servidor

Faça upload de um arquivo do ActiveStorage para uma API

Faça upload de um arquivo do ActiveStorage para uma API

Um erro de upload do Firebase Storage pode resultar em um arquivo parcial / corrompido no armazenamento?

Como faço o upload de um arquivo para Azurite do terminal?

Modificar tempo limite e exceção de upload de arquivo

Modificar tempo limite e exceção de upload de arquivo

Mover um arquivo do Armazenamento de Arquivos do Azure para o Armazenamento de Blob do Azure

Usando restTemplate do sping com um tempo limite, como faço para detectar um tempo limite?

Estendendo o tempo limite da sessão para upload de arquivo baseado em Ajax