2016-08-31 3 views
0

Ich bin neu in GCS und kann mein Problem hoffentlich gut erklären. Ich habe S3, um meine Aperture/Fotos von meinem Macbook in die Cloud zu sichern. Ich möchte diese Daten zu GCS migrieren für Benutzerfreundlichkeit, bessere Schnittstelle, gsutil, etc.PERMISSION_DENIED während der Übertragung von S3 nach GCS

Ich habe das Dienstprogramm Transfer Data auf der GCS-Website verwendet und meine S3-Zugangsdaten (Access Key und Secret Key) eingegeben. Ich habe Interoperabilität ermöglicht und einen Schlüssel in GCS generiert, obwohl ich es nicht für notwendig halte.

In S3 habe ich einen Benutzer in IAM (GoogleTransfer) erstellt und eine Inline-Richtlinie für diesen Benutzer mit allen ausgewählten Optionen erstellt, mit Ausnahme derer, die mit Delete * beginnen. Diese Berechtigungen sind:

{ 
"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:::*" 
     ] 
    } 
] 

}

ich den Transfer in GCS initiieren, und es beginnt Dateien zu kopieren. Es wird die Ordnerstruktur, aber dann Fehler ausgibt:

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: 

ich versucht habe dies mehrere Male mit Gruppenberechtigungen in S3 gesetzt als Admin, die Inline-Richtlinie verwenden, und die Kombination der beiden. Außerdem habe ich das Kontrollkästchen aktiviert, um die GCS-Dateien zu überschreiben, auch wenn die Quelle anders ist. Es ruft die Ordnerstruktur und viele Dateien ab, trifft dann aber auf diese Objekte und stoppt.

Mein nächster Versuch ist es, gsutil zu verwenden, um genau herauszufinden, wo das Problem auftritt, aber ich habe das Gefühl, dass sich die gleichen Ergebnisse ergeben werden.

Irgendwelche Ratschläge?

Danke!

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

UPDATE:

Wie erwartet, gab Fehler gsutil, obwohl dieses Mal ich in der Lage bin, um zu sehen, dass es nicht funktioniert sofort, anstatt darauf zu warten, dass die GCS-Übertragungsfunktion beendet wird. Meine Ausgabe:

<?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> 

Antwort

0

Sind diese Objekte in Amazon Glacier gespeichert? "InvalidObjectState" ist der Fehler, den S3 erhalten würde, wenn Sie versuchen, Objekte aus Amazon Glacier zu lesen, aber die Objekte noch nicht "wiederhergestellt" haben.

Wenn dies der Fall ist, beachten Sie, dass das Wiederherstellen der Objekte von Amazon Glacier Stunden dauern kann und, je nachdem wie viel und viele andere Faktoren vorhanden sind, sehr teuer sein kann.

+0

Danke für diese Einsicht, die mir nicht in den Sinn kam. Ich habe nachgesehen, da mein ursprünglicher Plan war, 5 Tage nach dem Hochladen automatisch auf Glacier zu archivieren, aber diese Regel wurde nicht aktiviert und wurde nie ausgeführt. Um sicherzugehen, habe ich Glacier überprüft und festgestellt, dass mein ApertureBackup noch nie aktualisiert wurde und keine Objekte darin enthalten sind. – Ben

+1

Nachdem Sie noch etwas gegraben haben, scheint es, dass Sie Recht haben! Ich ging zurück in meine S3-Konsole, in den eigentlichen Bucket und überprüfte die Details der Objekte. Einige waren Glacier Storage-Klasse, und einige waren Standard. Zuvor habe ich nur die Einstellungen für den Bucket selbst betrachtet. Ich bin dabei, sie alle in Standard zu konvertieren. Sobald ich fertig bin, werde ich den Transfer erneut versuchen. Danke für die Hilfe, und ich werde sicher sagen, dass du es gelöst hast, sobald die Übertragung gut aussieht. – Ben

Verwandte Themen