Google Cloud S3 和 rclone:错误 400:启用统一存储桶级访问时无法为对象插入旧 ACL

dav*_*s21 3 amazon-s3 google-cloud-platform

我正在尝试配置rclone访问谷歌云存储桶(它恰好由 terra.bio 管理。我的rclone配置如下:

[terra]
type = google cloud storage
object_acl = private
bucket_acl = private
token = {"access_token":"XXXXX","token_type":"Bearer","refresh_token":"XXXXX","expiry":"XXXXXX"}
Run Code Online (Sandbox Code Playgroud)

我尝试过设置authenticatedReadprivate但得到相同的结果。

我看到的错误消息是:

2022/08/13 18:24:44 Failed to copy: googleapi: Error 400: Cannot insert legacy ACL for an object when uniform bucket-level access is enabled. Read more at https://cloud.google.com/storage/docs/uniform-bucket-level-access, invalid
Run Code Online (Sandbox Code Playgroud)

dav*_*s21 6

感谢评论中的@John Hanley,解决方案在这里: https: //github.com/rclone/rclone/issues/3644

以下任一方法都可以解决该问题:

设置环境变量:

export RCLONE_GCS_BUCKET_POLICY_ONLY=true
Run Code Online (Sandbox Code Playgroud)

或者使用 rclone 参数:

rclone --gcs-bucket-policy-only copy localfile gcp:bucket/path/
Run Code Online (Sandbox Code Playgroud)