【问题标题】:S3 put object with multipart uplaodS3 将对象与分段上传
【发布时间】:2019-11-15 10:01:27
【问题描述】:

我已经尝试了所有可能的方法,有人可以帮助我使用 S3 Put object synatx 进行分段上传。

x <- rawConnection(raw(0), "w")
utils::write.csv(gene_read_counts, x)
put_object(rawConnectionValue(x), object = "xxx/data/processed/gene_read_counts_test2.csv", bucket = "dev-bkt")
put_object(file = gene_read_counts, object = "xxx/data/processed/gene_read_counts_test2.csv", bucket = "dev-bkt", headers = c('x-amz-server-side-encryption' = 'AES256')) 

错误文件大小为 71984023。考虑设置 'multipart = TRUE'。parse_aws_s3_response(r, Sig, verbose = verbose) 中的错误:禁止 (HTTP 403)。

【问题讨论】:

    标签: amazon-s3


    【解决方案1】:

    您的问题不是很清楚您要存储什么对象。 假设您要将大文件上传到 S3,请使用以下脚本。

    import boto3
    
    S3 = boto3.client('s3')
    
    localFile = 'PATH/TO/LOCAL/FILE'
    s3BucketName = 'MyS3Bucket'
    
    S3.upload_file(localFile, s3BucketName, localFile)
    

    这将自动分块您的大文件并并行上传。

    【讨论】:

    • 这是有道理的,但它是否对经典分段上传有任何性能影响。
    • 感谢您的回复。我在 EC2 上运行 r 代码,其中一个中间步骤需要将 csv 文件写入 S3 存储桶。文件大小将超过 200 MB。 O 尝试使用 put 对象,但由于参数对象必须是字符类型而失败。我认为需要上传块我会试试这个。
    • Boto3 包不适用于 R。Cna 请建议替代方案
    猜你喜欢
    • 2017-08-23
    • 2014-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-30
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多