403 AccessDenied für Paperclip-Anhänge, die mit dem Tool s3cmd auf Amazon S3 hochgeladen wurden

8

Ich habe vor kurzem mit dem s3cmd-Tool mehr als tausend Paperlclip-Anhänge vom lokalen Speicher auf Amazon S3 verschoben. Sie können Details dazu finden, wie ich diese hier erreicht habe, aber um es zusammenzufassen Ich habe den folgenden Befehl verwendet, um alle alten Anhänge zu migrieren.

%Vor%

Ich habe meine Codebasis aktualisiert, um den neuen S3-Bucket zu verwenden. Ich habe die Verbindung getestet und alles funktioniert einwandfrei. Tatsächlich kann ich über meine Anwendung neue Anhänge in den Remote-S3-Bucket hochladen und sie problemlos anschauen / herunterladen. Wie auch immer, es scheint so, als ob Paperclip und S3 nicht synchron zueinander sind. Alle Attachments, die ich in meinen s3-Bucket (im unteren Bild unscharf) verschoben habe, geben 403 zurück, wenn ich versuche, sie über meine zu erreichen Anwendung. Aber neue Anhänge, die in den gleichen Bucket hochgeladen werden, werden problemlos geladen.

Ich habe ein IAM-Gruppen-Setup mit der folgenden Konfiguration:

%Vor%

Gemessen an der Tatsache, dass ich neue Anhänge zu S3 hochladen kann, werde ich sagen, dass die Verbindung gut gelungen ist. Ich glaube, dass ich s3cmd eingerichtet habe, um sich mit meinem Bucket über ein anderes IAM-Benutzerkonto als das, das über meine Anwendung auf den Bucket zugreift, zu verbinden. Könnte es vielleicht ein Erlaubnisproblem sein? Wenn ja, kann ich die obigen Berechtigungen in irgendeiner Weise ändern, um Zugriff auf diese Dateien zu gewähren?

Ich verwende die aws-sdk , um Büroklammer mit S3 zu integrieren.

Bearbeiten: Ich dachte, es könnte sich um ein Eigentum handeln, da ich die Dateien mit den Admin-Schlüsseln hochgeladen habe und nicht mit denen, die ich in meiner Anwendung verwende. Ich löschte den Bucket und resynchronisierte s3cmd, nachdem ich ihn so konfiguriert hatte, dass er die gleichen Schlüssel verwendete wie die Anwendung. Ich habe jedoch das gleiche Ergebnis.

Bearbeiten2: Ich kann meine Berechtigungen überprüfen & amp; Verbindung weiter, indem Sie für meine Anwendung in meine Produktionskonsole gehen und manuell mit meinem Bucket interagieren. Alles funktioniert einwandfrei, d. H. Ich kann Dateien abrufen, für die mein Browser 403s zurückgibt.

%Vor%     
Noz 06.01.2014, 22:43
quelle

1 Antwort

14

Es scheint, als ob Ihre S3-Bucket-Richtlinie öffentlichen Lesezugriff von öffentlichen Benutzern nicht ordnungsgemäß zulässt. Versuchen Sie etwas wie:

%Vor%

Die Tatsache, dass Sie auf diese Dateien als öffentlicher Benutzer zugreifen können, wenn Sie die öffentlichen Leseberechtigungen manuell anwenden, bestätigt, dass Ihre Bucket-Richtlinie den Lesezugriff nicht korrekt gewährt.

Wenn Sie eine öffentliche S3-URL verwenden, um auf die Dateien zuzugreifen, gibt es keinen authentifizierten Benutzer.

    
Winfield 13.01.2014, 22:21
quelle