我正在尝试使用以下代码将csv文件写入Amazon S3存储桶
s3write_using(gene_read_counts, FUN = write.csv, object = "gene_read_counts_test.csv", bucket = "test-bioinformatics-dev-bkt/research/bioinformatics/colo_final/data/processed/colorectal", row.names=FALSE)
我遇到以下错误
文件大小为71619789。考虑设置“ multipart = TRUE”。 parse_aws_s3_response(r,Sig,verbose = verbose)中的错误:禁止(HTTP 403)。
答案 0 :(得分:1)
查看错误时可能有2个方面。
似乎出现错误,提示在上传大文件时使用AWS-S3分段上传。分段上传可更快,更灵活地上传到Amazon S3。可以通过
CreateMultipartUpload
上传初始化。UploadPartCopy
操作CompleteMultipartUpload
操作。AbortMultipartUpload
。使用AbortMultipartUpload
,将释放任何先前上载的部分占用的存储空间。 请参阅下面的AWS文档。 https://docs.aws.amazon.com/AmazonS3/latest/API/API_CreateMultipartUpload.html https://docs.aws.amazon.com/AmazonS3/latest/API/API_UploadPart.html https://docs.aws.amazon.com/AmazonS3/latest/API/API_CompleteMultipartUpload.html https://docs.aws.amazon.com/AmazonS3/latest/API/API_AbortMultipartUpload.html
禁止(HTTP 403)错误提示权限被拒绝。在这种情况下,如果用户有权访问S3对象,请检查IAM角色。
由于您正在使用“ R”语言在S3中写入文件。我建议使用Put_Object
函数,并在函数中设置multipart = TRUE
以部分上传文件。
您可以使用以下代码
put_object(filename, object, bucketname, multipart = TRUE, acl = c("private",
"public-read", "public-read-write", "aws-exec-read", "authenticated-read",
"bucket-owner-read", "bucket-owner-full-control"), headers = list(), ...)
在上述函数中说multipart = TRUE
时,它将创建所提供对象的部分或块并将其部分上传到S3中。