2016-08-31 17 views
0

にS3からの転送中に、私はGCSに新たなんだ、とうまくいけばよく私の問題を説明することができます。 MacBookからクラウドへAperture/PhotosをバックアップするS3があります。PERMISSION_DENIED GCS

私はGCSのウェブサイトでTransfer Dataユーティリティを使用し、S3認証情報(アクセスキーと秘密鍵)を入力しました。そのデータをGCSに移行します。私は相互運用性を可能にし、GCSでキーを生成しましたが、それは必要とは思われませんでした。

S3の中で、私はIAM(GoogleTransfer)でユーザーを作成し、そして* [削除]で始まるものを除き、選択したすべてのオプションと、そのユーザーのためのインラインポリシーを作成しました。これらの権限は次のとおりです。

{ 
"Version": "2012-10-17", 
"Statement": [ 
    { 
     "Sid": "<my ID>", 
     "Effect": "Allow", 
     "Action": [ 
      "s3:AbortMultipartUpload", 
      "s3:CreateBucket", 
      "s3:GetAccelerateConfiguration", 
      "s3:GetBucketAcl", 
      "s3:GetBucketCORS", 
      "s3:GetBucketLocation", 
      "s3:GetBucketLogging", 
      "s3:GetBucketNotification", 
      "s3:GetBucketPolicy", 
      "s3:GetBucketRequestPayment", 
      "s3:GetBucketTagging", 
      "s3:GetBucketVersioning", 
      "s3:GetBucketWebsite", 
      "s3:GetLifecycleConfiguration", 
      "s3:GetObject", 
      "s3:GetObjectAcl", 
      "s3:GetObjectTorrent", 
      "s3:GetObjectVersion", 
      "s3:GetObjectVersionAcl", 
      "s3:GetObjectVersionTorrent", 
      "s3:GetReplicationConfiguration", 
      "s3:ListAllMyBuckets", 
      "s3:ListBucket", 
      "s3:ListBucketMultipartUploads", 
      "s3:ListBucketVersions", 
      "s3:ListMultipartUploadParts", 
      "s3:PutAccelerateConfiguration", 
      "s3:PutBucketAcl", 
      "s3:PutBucketCORS", 
      "s3:PutBucketLogging", 
      "s3:PutBucketNotification", 
      "s3:PutBucketPolicy", 
      "s3:PutBucketRequestPayment", 
      "s3:PutBucketTagging", 
      "s3:PutBucketVersioning", 
      "s3:PutBucketWebsite", 
      "s3:PutLifecycleConfiguration", 
      "s3:PutReplicationConfiguration", 
      "s3:PutObject", 
      "s3:PutObjectAcl", 
      "s3:PutObjectVersionAcl", 
      "s3:ReplicateDelete", 
      "s3:ReplicateObject", 
      "s3:RestoreObject" 
     ], 
     "Resource": [ 
      "arn:aws:s3:::*" 
     ] 
    } 
] 

}

私はGCSでの転送を開始し、そしてそれは、ファイルのコピーを開始します。これは、フォルダ構造を取得しますが、その後、エラーを発行します。

PERMISSION_DENIED: (showing 5 of 104342 failures) 
Object: Aperture Library.aplibrary/Database/Albums/L2z6kBLyQPKRGvv8Jp%yig.apalbum 
Object: Aperture Library.aplibrary/Database/Albums/LxYeHbbiSgaQzhjBgpbJBg.apalbum 
Object: Aperture Library.aplibrary/Database/Albums/TT+4B27jQx+Us1lc3XJszQ.apalbum 

PERMISSION_DENIED: (showing 5 of 104342 failures) 
Object: 
Object: 
Object: 
Object: 
Object: 

私は、インラインポリシーを使用して、そして2つが結合し、管理者として設定S3におけるグループ権限を使用して、この複数回試してみました。また、ソースが異なる場合でも、GCSファイルを上書きするボックスをチェックしました。それは、フォルダ構造と多くのファイルを取得しますが、これらのオブジェクトにヒットして停止します。

私の次の試みは、問題が発生している場所を正確に見つけるためにgsutilを使用することですが、私は同じ結果をアップになります感を持っています。

任意のアドバイスはありますか?

ありがとうございます!

==============

UPDATE:この時、私はそれが動作していないことを確認することができるよものの

予想通り

は、発行したエラーをgsutilのすぐに、GCS転送機能が終了するのを待つ代わりに。私の出力:

<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>InvalidObjectState</Code><Message>The operation is not valid for the object's storage class</Message><RequestId>MyReqID</RequestId><HostId>MyHostID</HostId></Error> 

Copying s3://benmctee-aperture/Aperture Library.aplibrary/Database/Albums/CtW8oCcESyOINcweX1imtQ.apalbum [Content-Type=application/octet-stream]... 
Copying s3://benmctee-aperture/Aperture Library.aplibrary/Database/Albums/DFVs%e5uSwqZ16gNqgycPQ.apalbum [Content-Type=application/octet-stream]... 
Copying s3://benmctee-aperture/Aperture Library.aplibrary/Database/Albums/DLYiL8uITfuo6zLqdgYr1w.apalbum [Content-Type=application/octet-stream]... 
Copying s3://benmctee-aperture/Aperture Library.aplibrary/Database/Albums/D7UOGRrXS3muB2ilQ80Fmw.apalbum [Content-Type=application/octet-stream]... 
Exception in thread Thread-85: 
Traceback (most recent call last): 
    File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner 
    self.run() 
    File "/usr/lib/python2.7/threading.py", line 763, in run 
    self.__target(*self.__args, **self.__kwargs) 
    File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/daisy_chain_wrapper.py", line 197, in PerformDownload 
    decryption_tuple=self.decryption_tuple) 
    File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/cloud_api_delegator.py", line 252, in GetObjectMedia 
    decryption_tuple=decryption_tuple) 
    File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/boto_translation.py", line 493, in GetObjectMedia 
    generation=generation) 
    File "/usr/lib/google-cloud-sdk/platform/gsutil/gslib/boto_translation.py", line 1430, in _TranslateExceptionAndRaise 
    raise translated_exception 
AccessDeniedException: AccessDeniedException: 403 InvalidObjectState 
<?xml version="1.0" encoding="UTF-8"?> 
<Error><Code>InvalidObjectState</Code><Message>The operation is not valid for the object's storage class</Message><RequestId>MyReqID</RequestId><HostId>MyHostID</HostId></Error> 

答えて

0

これらのオブジェクトはAmazon Glacierに保存されていますか? "InvalidObjectState"は、Amazon Glacierからオブジェクトを読み込もうとしたのにS3を取得しようとしたが、オブジェクトをまだ "復元"していない場合のエラーです。

このような場合は、アマゾン氷河からオブジェクトを復元する時間を取ると、そこにあるどのくらいに依存し、他の多くの要因、非常に高価になることができることに注意してください。

+0

私の心を交差しなかった洞察、ありがとう。アップロード後5日目に氷河に自動的にアーカイブする計画だったので、私はチェックしましたが、そのルールはアクティブ化されず、実行されませんでした。ちょうど確かめるために、私はGlacierをチェックしました。そして、私のApertureBackupは決して更新されておらず、オブジェクトがそこに常駐していないと述べました。 – Ben

+1

もう少し掘り下げたら、正しいかもしれないようです! S3のコンソールに戻り、実際のバケットに戻り、オブジェクトの詳細を確認しました。いくつかは氷河のストレージクラスであり、いくつかはStandardでした。以前は、バケット自体の設定を調べていました。私はそれらをすべてStandardに変換するプロセスに入っています。完了したら、もう一度転送を試みます。助けてくれてありがとう。転送がうまくいくと、あなたはそれを解決したと言います。 – Ben