2016-07-31 14 views
0

Ich versuche, einen einfachen S3-Server einzurichten Ich kann eine URL ziehen (in diesem Fall wird es eine Quickbase-Datei, die bereits importiert wurde), und durch Klicken auf eine Schaltfläche wird ein Skript in den Quickbase-Seiten aufrufen I definiert ist, hat es die dbid und Rekord-ID #, die als seine Daten in einem div Feld ist, das in das Skript alsWie werden die Anmeldeinformationen für die AWS S3-URL-Einrichtung verwendet?

var fileToUpload = $(this).attr('data'); 
var qbfiletag = $(this).attr('data'); 

Dateien gezogen ist zum hochladen der Einfachheit halber auf S3 mit einem Tag-Feld die uRL genau, dass Quickbase ist Speichern der Datei, die ich importieren muss.

Ich weiß, dass dies möglich ist, weil die Juice- und Zapier-Teams es getan haben, ich habe gerade eine harte Zeit, die Anmeldeinformationen einzurichten, um dies als URL zu tun.

Ich bin nicht einmal 100% sicher, dass ich den Zugangsschlüssel richtig eingerichtet habe. Ich habe Lesezugriff auf mycompany.quickbase.com gegeben, aber andererseits, dass ich so viele Informationen für all die verschiedenen Dinge habe, die aws bietet, ist schwer einzugrenzen, wo ich es vermasselt habe.

+0

Nur um klar zu sein, ist das Ziel hier, einen Knopf auf einem Quickbase-Formular zu drücken, das dazu führt, dass ein mit diesem Datensatz verbundenes Dokument auf Ihrem S3-Server gespeichert wird? –

+0

Drücken einer Schaltfläche im Quickbase-Formular, die die Datei aus Quickbase abruft und auf dem s3-Server speichert. –

Antwort

0

Es scheint, als gäbe es mehrere Schritte zum Einrichten Ihres Kontos für den Zugriff auf S3 über JavaScript. Nachdem Ihr Bucket erstellt wurde, müssen Sie CORS einrichten, indem Sie auf die Eigenschaften des Buckets zugreifen und die CORS-Konfiguration bearbeiten. Sie haben angegeben, dass Sie Lese-/Schreibzugriff auf die Domain Ihrer Firma haben, so dass Sie dies wahrscheinlich bereits getan haben. Ich habe diesen von Amazon zu Test:

<?xml version="1.0" encoding="UTF-8"?> 
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> 
<CORSRule> 
    <AllowedOrigin>https://mycompany.quickbase.com</AllowedOrigin> 
    <AllowedMethod>PUT</AllowedMethod> 
    <AllowedMethod>POST</AllowedMethod> 
    <AllowedMethod>DELETE</AllowedMethod> 
    <AllowedHeader>*</AllowedHeader> 
</CORSRule> 

Der zweite Teil ist einen Benutzer in den IAM Identity and Access Management Console zu erstellen. Während des Erstellens des Benutzers generiert Amazon automatisch eine Zugriffsschlüssel-ID und ein geheimes Zugriffsschlüsselpaar. Sie benötigen diese für den API-Aufruf später. Sie müssen außerdem eine Richtlinie anhängen, die Berechtigungen für den Benutzer festlegt. Ich habe die AmazonS3FullAccess-Richtlinie für meinen Test verwendet. All dies geschieht über diese Konsole.

Sobald Ihr IAM-Benutzer eingerichtet ist, können Sie die Zugriffsschlüssel-ID und den geheimen Zugriffsschlüssel an den AWS-Konfigurator übergeben, bevor Sie das S3-Objekt mithilfe des JavaScript SDK von Amazon instanziieren.

AWS.config.update({accessKeyId: 'ABCDEFGHIJKLMNOP', secretAccessKey: 'a1b2c3d4e5f6g7i8j9k0+0012ab'}); 
var bucket = new AWS.S3({params: {Bucket: 'myBucketName'}}); 

Von dort können Sie das bucket Objekt verwenden Sie einen der S3 Methoden im SDK rufen Sie Ihre Datei mit dem Hochladen.

+0

Ich habe versucht, aus Quickbase zu posten und hatte Probleme mit mehreren Domänen. Also werde ich stattdessen etwas wie die please.js von GH verwenden, um eine Nachricht mit Daten, die für eine Referenz von QB benötigt werden, zu posten, um die richtige Datei zu ziehen. Ich habe versucht, [this] (http://stackoverflow.com/questions/17585881/amazon-s3-direct-file-upload-from-client-browser-private-key-disclosure/31055652#31055652) Format für Buchung Und ich habe Probleme mit dem Access-Control-Allow-Origin, ich bin mir nicht sicher, wie ich dies auf der Website zu erklären, ich habe es korrekt auf dem Kors doc –

+0

Wenn Sie immer noch domänenübergreifende Probleme haben, Das ist ein guter Hinweis darauf, dass CORS nicht richtig eingerichtet ist. Haben Sie versucht, das Beispiel von Amazon zum Hochladen von Daten in ein Objekt zu verwenden, bevor Sie es an die spezifischen Anforderungen Ihres Projekts anpassen? Wenn nicht, schlage ich vor, dass Sie das Beispiel ausprobieren und die CORS- und Authentifizierungsprobleme mit Code umgehen, von dem bekannt ist, dass er funktioniert. So habe ich meine Antwort oben getestet. http://docs.aws.amazon.com/AWSJavaScriptSDK/guide/browser-examples.html#Amazon_S3 –