Mys*_*yos 5 amazon-s3 file-transfer google-cloud-storage
我已经尝试过去几个小时来设置从S3到我的谷歌存储桶的转移.
创建传输时,我不断收到的错误是:"无效的访问密钥.确保S3存储桶的访问密钥正确,或将存储桶权限设置为"授予所有人".
鉴于它们当前正在生产中用于S3完全访问,因此访问密钥和秘密都是正确的.
有几点需要注意:
桶政策:
{
"Version": "2008-10-17",
"Id": "Policy234234234",
"Statement": [
{
"Sid": "Stmt234234",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:AbortMultipartUpload",
"s3:GetObjectAcl",
"s3:RestoreObject",
"s3:GetObjectVersion",
"s3:DeleteObject",
"s3:DeleteObjectVersion",
"s3:PutObjectVersionAcl",
"s3:PutObjectAcl",
"s3:GetObject",
"s3:PutObject",
"s3:GetObjectVersionAcl"
],
"Resource": "arn:aws:s3:::mybucket/*"
},
{
"Sid": "2",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::cloudfront:user/CloudFront Origin Access Identity xyzmatey"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::mybucket/*"
},
{
"Sid": "3",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": [
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": "arn:aws:s3:::mybucket"
}
]
}
Run Code Online (Sandbox Code Playgroud)
CORS政策
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<CORSRule>
<AllowedOrigin>http://www.mywebsite.com</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedMethod>PUT</AllowedMethod>
<AllowedMethod>DELETE</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>GET</AllowedMethod>
<AllowedHeader>AUTHORIZATION</AllowedHeader>
</CORSRule>
<CORSRule>
<AllowedOrigin>*</AllowedOrigin>
<AllowedMethod>HEAD</AllowedMethod>
<AllowedHeader>AUTHORIZATION</AllowedHeader>
</CORSRule>
</CORSConfiguration>
Run Code Online (Sandbox Code Playgroud)
知道我哪里出错了?
编辑:我已经gsutil在google计算实例上设置了该工具,并在确切的存储桶上使用相同的AWS密钥进行了复制.工作就像一个魅力..
我是转会服务的开发者之一.
您需要在权限中添加"s3:GetBucketLocation".
如果您收到的错误更具体地说是关于您的ACL,而不是无效的密钥,那将是更好的选择.我会调查一下.
编辑:在这篇文章中添加更多信息.有文档列出了此要求:https://cloud.google.com/storage/transfer/
以下是"配置访问"部分的引用:
"如果您的源数据是Amazon S3存储桶,则设置AWS身份和访问管理(IAM)用户,以便您可以让用户列出Amazon S3存储桶,获取存储桶的位置以及读取对象在桶里." [强调我的.]
EDIT2:这个答案提供的大部分信息对其他人都有用,所以它会留在这里,但John的答案实际上已经触及OP的问题.
小智 5
我是转运服务的工程师.您遇到此问题的原因是Transfer服务尚不支持AWS S3区域ap-southeast-1(新加坡),因为GCP在该区域中没有与AWS S3的网络安排.我们现在可以考虑支持该地区,但您的转移将比其他地区慢得多.
最后,我们正在修复以显示更清晰的错误消息.
| 归档时间: |
|
| 查看次数: |
2859 次 |
| 最近记录: |