2016-04-07 14 views
1

Ich versuche, die Bilder von meinem s3 Eimer mit iOS sdk (swift) zum Download, aber ich bin immer bekommen access-denied Fehleraws ios sdk - Ausgabe Bilder von s3

Domain=com.amazonaws.AWSS3ErrorDomain Code=1 "(null)" UserInfo={HostId=asadadadadadad=, Message=Access Denied, Code=AccessDenied, RequestId=A467438974F8127B}]

Es funktioniert das Herunterladen juts fein mit den Uploads, wenn ich keine ACL-Einstellungen verwende. Wenn ich die ACL gesetzt

let uploadRequest = AWSS3TransferManagerUploadRequest() 
uploadRequest.ACL = AWSS3ObjectCannedACL.AuthenticatedRead 

beide laden & Download fehlschlägt.

unten sind meine cognito & IAM Politik

{ 
    "Version": "2012-10-17", 
    "Statement": [ 
    { 
    "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource":["arn:aws:s3:::yimages/*"] 
    },{ 
    "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Effect": "Allow", 
     "Resource":["arn:aws:s3:::yimages"] 
    } 
    ] 
} 

und

{ 
    "Version":"2012-10-17", 
    "Statement":[ 
    { 
     "Sid":"AddCannedAcl", 
     "Effect":"Allow", 
     "Principal": "*", 
    "Action": [ 
     "s3:GetObject", 
     "s3:PutObject" 
     ], 
     "Resource":["arn:aws:s3:::yimages/*"] 
    } 
    ] 
} 

ich bin sicher, dass dies etwas todo mit der Politik ist, aber ich kann nicht herausfinden, was .. was ist mir rätselhaft ist, wie Kommt der Upload funktioniert aber der Download ??

jede Hilfe sehr geschätzt wird ..

Antwort

0
  1. GetObject & PutObject & zu Aktionen auf Objekte innerhalb der Eimer beziehen beziehen sich nicht auf den heißen Stein (arn: aws: s3 ::: yimages). Für den Eimer selbst, müssen Sie Bucket Aktionen wie unten zur Verfügung zu stellen:
"Action": [ 
      "s3:GetBucketLocation", 
      "s3:ListBucket", 
      "s3:ListAllMyBuckets" 
     ] 
  1. Sie versuchen Abschnitt ähnliche Politik in den expliziten 'Bucket Politik' Hinzufügen könnten der Registerkarte "Berechtigungen" zum Festlegen von Bucket & Berechtigungen auf Objektebene