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