【问题标题】:File truncated on upload to GCS上传到 GCS 时文件被截断
【发布时间】:2022-10-22 03:21:34
【问题描述】:

我正在使用 python API 在 Google CLoud 存储上上传一个相对较小(<1 MiB)的 .jsonl 文件。我使用的函数来自 gcp 文档:

def upload_blob(key_path,bucket_name, source_file_name, destination_blob_name):
    """Uploads a file to the bucket."""
    # The ID of your GCS bucket
    # bucket_name = "your-bucket-name"
    # The path to your file to upload
    # source_file_name = "local/path/to/file"
    # The ID of your GCS object
    # destination_blob_name = "storage-object-name"

    storage_client = storage.Client.from_service_account_json(key_path)
    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(destination_blob_name)

    blob.upload_from_filename(source_file_name)

    print(
        "File {} uploaded to {}.".format(
            source_file_name, destination_blob_name
        )
    )

我遇到的问题是 .jsonl 文件在上传后被截断为 9500 行。事实上,第 9500 行并不完整。我不确定问题是什么,也不认为这个小文件会有任何限制。任何帮助表示赞赏。

【问题讨论】:

  • 如果您从平均上传速度为 500 Mbps 的区域内服务上传,则文件的截止大小几乎为 2 GB。您可以参考upload size considerations 部分。
  • 您的脚本是否打印“文件...上传到...”?还是在到达那里之前就崩溃了?
  • 它确实打印出来,并且脚本成功完成了它的运行。同样对于第一条评论,文件大小小于 MB,因此它远未接近该限制。
  • 您可以尝试分块上传文件。您可以找到样品here。 (搜索 request.next_chunk())。让我知道这是否有帮助!

标签: google-cloud-platform google-cloud-storage


【解决方案1】:

前段时间我遇到了类似的问题。在我的情况下,上传到存储桶是在我将内容记录到source_file_name 的行之后的with python 子句中调用的,所以我只需要将上传行移到with 之外,以便正确记录和关闭要上传的本地文件。

【讨论】:

    猜你喜欢
    • 2018-08-05
    • 1970-01-01
    • 2021-10-09
    • 1970-01-01
    • 2016-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多