2017-08-15 1 views
1

Die Anforderungen des Parse S3-Adapters S3_ACCESS_KEY und S3_SECRET_KEY sind jetzt veraltet. Es heißt, die Umgebungsvariablen zu verwenden: AWS_ACCESS_KEY_ID und AWS_SECRET_ACCESS_KEY. Wir haben einen AWS-Benutzer mit einer Zugriffsschlüssel-ID eingerichtet, und wir haben auch unseren geheimen Schlüssel. Wir haben die neueste Version des Adapters aktualisiert und unsere alten S3_X_Key Variablen entfernt. Sobald wir dies tun, können wir leider keine Dateien in unserem S3-Bucket öffnen, hochladen oder ändern. Der Benutzer hat Zugriff auf unsere Buckets-Eigenschaften, und wenn wir ihn zurück ändern, um das explizite S3_ACCESS_KEY zu verwenden, funktioniert alles.Parse Server S3-Adapter veraltet

Wir hosten auf Heroku und hatten bis jetzt keine Probleme.

Was muss noch getan werden, um dies einzurichten?

Diese Verweigerungsmitteilung ist sehr vage, wie Sie dies beheben können. (Link zu bemerken: https://github.com/parse-server-modules/parse-server-s3-adapter#deprecation-notice----aws-credentials)

+0

Ich habe auch Probleme damit. Ich habe die 'S3Adapter'-Instanz entfernt und versucht, nur Umgebungsvariablen zu verwenden, habe aber gerade bemerkt, dass alle meine Dateien jetzt direkt in der Datenbank gespeichert werden. Ich werde dich wissen lassen, wenn ich es herausgefunden habe. – enjoyjeremy

+0

Danke, das ist der schwierige Teil von Open Source ... fragwürdige Dokumentation und seltsame Probleme! :) Ich werde dich wissen lassen, ob ich es auch herausfinden werde. –

+0

Irgendwelche Updates zu diesem Thema? –

Antwort

1

Arjav Dave Antwort Unten ist am besten, wenn Sie AWS oder eine Hosting-Lösung verwenden, bei der Sie sich bei den s anmelden können und führen Sie den AWS-Befehl Konfigurieren auf dem Server aus. Oder wenn Sie alles lokal ausführen.

Allerdings habe ich nach Heroku gefragt, und das gilt für jede Serverumgebung, in der Sie ENV-Variablen festlegen können.

Wirklich kommt es auf nur ein paar Schritte. Wenn Sie eine frühere Version Setup Sie Ihre Datei Adapter wechseln wollen gerade lesen: filesAdapter: 'parse-server-s3-adapter', (oder was auch immer Ihr npm installierte Paket wird als einige verwenden die @parse/... eins)

die require Anweisung und don herausnehmen‘ t Erstellen Sie beliebige Instanzvariablen von S3Adapter oder etwas ähnliches in Ihrer index.js.

dann in Heroku.com Config Vars erstellen oder mit dem CLI: heroku config:set AWS_ACCESS_KEY_ID=abc und heroku config:set AWS_SECRET_ACCESS_KEY=abc

Jetzt laufen und Ihre Upload testen. Alles sollte gut sein.

Der neue Adapter verwendet die Umgebungsvariablen für den Zugriff und Sie müssen nur sagen, welcher Dateiadapter in der Datei index.js installiert ist. Es wird den Rest erledigen. Wenn dies nicht funktioniert, sollten Sie die IAM-Profilkonfiguration testen und sicherstellen, dass alles funktioniert, bevor Sie zu diesem Teil zurückkehren. Siehe unten:

Funktioniert immer noch nicht? Versuchen Sie dieses Beispiel (edit Sample.js dem Eimer zu sein, wenn die Prüfung) ausgeführt wird: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-started-nodejs.html

völlig verloren und keine Ahnung, wo Sie anfangen sollen?

1 Holen Sie Ihre AWS Anmeldeinformationen: https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/getting-your-credentials.html

2-Setup Ihre Bucket https://transloadit.com/docs/faq/how-to-set-up-an-amazon-s3-bucket/ (das Teil auf IAM-Benutzer folgen auch)

3 Folgen IAM Best Practices https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html

Dann gehe zurück zum Anfang dieses Beitrags.

Hoffen, dass das hilft jedem anderen, der dadurch verwirrt war.

+0

Dies funktioniert, solange Sie keine Optionen an den Adapter übergeben müssen.Wenn Sie das tun, sollten Sie zum Beispiel folgendes verwenden: 'filesAdapter: {module: '@ parse/s3-files-adapter', Optionen: {buckePrefix: 'myBucketPrefix'}}' – boinged

+0

Das heißt, Sie müssen möglicherweise keine Optionen als sie übergeben sollten alle über Umgebungsvariablen, z buckePrefix wird von S3_BUCKET_PREFIX gesetzt – boinged

+0

Nun, da es eine Weile dauert, es auf diese Weise zu verwenden ... ist das tatsächlich viel besser. Wir können von der Entwicklung zur Produktion wechseln, und das ist eine Sache, die wir auf der Codeebene ändern müssen. Wir haben nur unsere ENV-Variablen eingerichtet und es funktioniert super out of the box. –

2

Ich habe die folgenden Schritte aus und es funktioniert jetzt:

  1. Amazon CLI installiert http://docs.aws.amazon.com/cli/latest/userguide/installing.html

  2. konfiguriert CLI durch einen Benutzer erstellen und dann Schlüssel-ID zu schaffen und geheim http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

  3. Setzen Sie die S3_BUCKET env Variable

    Export S3_BUCKET =

  4. Installed Dateien Adapter mit dem Befehl

    npm install --save @parse/s3-files-adapter 
    
  5. In meinem Parse-Servers index.js hinzugefügt, um die Dateien Adapter

    var S3Adapter = require('@parse/s3-files-adapter'); 
    var s3Adapter = new S3Adapter(); 
    
    var api = new ParseServer({ 
        appId: 'my_app', 
        masterKey: 'master_key', 
        filesAdapter: s3Adapter 
    }) 
    
+0

Ich habe es wie oben eingerichtet, aber ich bekomme den folgenden Fehler: "fehlende Anmeldeinformationen in der Konfiguration". Hast du so etwas gesehen? – DevKyle

+0

Nein, habe keine solche Fehlermeldung. Stellen Sie sicher, dass Ihre aws-Anmeldedaten korrekt eingerichtet sind. Die Datei mit den Zugangsdaten ist unter ~/.aws/credentials gespeichert. Können Sie Ihre Protokolle anhängen? –

+0

Können Sie erklären, was Sie in Schritt 3 ein wenig mehr getan haben? Hast du gerade den S3_BUCKET deklariert und wo? –