Ich versuche, FineUploaders neue Funktion zu verwenden, die direkten Upload zu Amazon S3 ermöglicht. Momentan kann ich keine Fotos hochladen. Ich erhalte den Fehler: "Ungültige Richtliniendokumente oder Anforderungsheader!"Empfangen ungültiger Richtlinie Dokument oder Anfrage Kopfzeilen Fehler bei der Verwendung von FineUploader für Amazon S3
Die Entwickler haben gefragt, dass Fragen hier bei stackoverflow gestellt werden.
verfolge ich ihre Anweisungen auf dieser Seite:
Dinge In der Einrichtung, ich habe emuliert auch die Beispieldatei dort verknüpft: https://github.com/Widen/fine-uploader-server/blob/master/php/s3/s3demo.php
ich mein Javascript eingerichtet haben also mit sehr wenigen Optionen:
$('#fineuploader-s3').fineUploaderS3({
request: {
endpoint: "http://thenameofmybucket.s3.amazonaws.com",
accessKey: “mypublicaccesskey”
},
signature: {
endpoint: "s3demo.php"
},
iframeSupport: {
localBlankPagePath: "/success.html"
},
cors: {
expected: true
}
});
Ich weiß, es gibt viele p Schnürsenkel, wo dies für mich schief gehen könnte. Ich habe noch nie zuvor s3 oder fineuloader benutzt, also tut mir leid, wenn das dumme Fragen sind. Aber hier sind die Orte, an denen ich mich beim Aufbau am verwirrtesten fühlte. Ich habe das Problem das Gefühl liegt in # 1:
(1) Im Beispiel Javascript, das ist, wie der Weg zur Signatur eingerichtet ist:
// REQUIRED: Path to our local server where requests can be signed.
signature: {
endpoint: "/s3/signtureHandler"
},
ich nicht sicher war, ob damit gemeint ist eine leere Datei zu sein, wo ein JSON erstellt wird oder auf das PHP-Skript zeigen soll, wo die Funktion zum Erstellen des JSons ist, in meinem Fall s3demo.php, das ich direkt kopiert habe.
(2) In der s3demo.php Datei, die nur Zeilen, die ich geändert waren diese:
$clientPrivateKey = $_SERVER['I put my private key here'];
$expectedBucket = "http://thenameofmybucket.s3.amazonaws.com";
function handlePreflightedRequest() {
// If you are relying on CORS, you will need to adjust the allowed domain here.
header('Access-Control-Allow-Origin: http://mywebsitename.org');
}
(3) Das ist, was ich für meine CORS-Datei habe, war ich nicht sicher, ob es Recht, weil die Beispiele auf der Lehr-Seite nicht die Tags enthalten:
<CORSRule>
<AllowedOrigin>http://mywebsitename.org</AllowedOrigin>
<AllowedMethod>POST</AllowedMethod>
<MaxAgeSeconds>3000</MaxAgeSeconds>
<AllowedHeader>*</AllowedHeader>
</CORSRule>
(4) Wie in der Anleitung ausführlich, ging ich in IAM-Panel und eine Gruppe mit der Politik von den Anweisungen genau kopiert erstellt, aber mit dem tatsächlichen Namen meines Eimers:
, dann ein Benutzer, von dem ich die öffentlichen und privaten Zugangsschlüssel in den Javascript-und PHP-Dateien jeweils verwendet. Der Benutzername ist nicht speziell in den Skripten verwendet.
Ich hoffe, es gibt etwas wirklich offensichtlich, dass ich hier falsch gemacht habe. Vielen Dank für Ihre Zeit.
Um Frage (1) zu beantworten. Die Option "signature.endpoint" sollte auf das PHP-Skript verweisen. –