Ich möchte direkt von AngularJSAngularJS Direct Upload zu Google Cloud Storage Fehler
Dateigröße größer als 32 MB bis GCS hochzuladen ich erfolgreich Blobstore
laden konnte, wenn die Dateigröße kleiner als 32 MB ist, den Code unten angegebenen.
$http.post(uploadUrl, $scope.formData, {
withCredentials: true,
headers: {'Content-Type': undefined},
transformRequest: angular.identity
});
Wenn ich versuche, die Datei mit URL https://storage.googleapis.com/bucket-name/filename
, ich habe den folgenden Fehler zu laden.
Credentials flag is 'true', but the 'Access-Control-Allow-Credentials' header is ''. It must be 'true' to allow credentials. Origin 'http://localhost:8080' is therefore not allowed access.
Wenn ich Flagge withCredentials: true
in http Post verwendet entfernen, bekam ich Antwort als 403, werden keine Fehlerdetails gegeben.
Ich habe den cors gesetzt, wie für den Upload Eimer erwähnt [{"maxAgeSeconds": 3600, "method": ["GET", "POST", "HEAD"], "origin": ["http://localhost:8088"], "responseHeader": ["Content-Type"]}]
Wie Access-Control-Allow-Credentials
Flag in dem Server aktivieren?
Hallo @Eric, danke für die Antwort. Ich habe versucht, signierte URL wie vorgeschlagen, ich habe den gleichen Fehler. Der Download ist erfolgreich, aber nicht hochgeladen. Für das Hochladen durch Blobstore, habe ich einen anderen Fehler, bitte http://stackoverflow.com/questions/38344261/gcs-heap-error-when-file-of-higher-size-was-uploaded. Ich konnte den Header 'Access-Control-Allow-Origin' nicht erfolgreich verwenden, indem ich httpProvider default header '$ httpProvider.defaults.headers.common [' Access-Control-Allow-Origin '] =' * ';' mit 'withCredentials änderte : Falsche Einstellung hat nicht viel geholfen. Könnten Sie mir helfen, den Header zu verwenden? – SetV
Sie müssen diesen Header auf _response_ von Ihrem _server_ gesendet, keine Anfrage von Ihrem Client. In Ihrem Java-Code (den ich sehe, ist Ihre bevorzugte Sprache aus der anderen Frage, die Sie verlinkt haben), könnten Sie 'resp.setHeader (" Access-Control-Allow-Origin "," * ") verwenden;'. –
Hallo @Eric, ich kann bei Ihren ersten beiden Lösungen bleiben. Das hilft wirklich! – SetV