Я хочу, чтобы загрузить файл размером больше, чем 32 МБ до ГКС непосредственно из AngularJSAngularJS Direct Загрузить в Ошибка Google Cloud Storage
Я мог успешно загрузить на Blobstore
, когда размер файла меньше 32 МБ, используя код, указанный ниже.
$http.post(uploadUrl, $scope.formData, {
withCredentials: true,
headers: {'Content-Type': undefined},
transformRequest: angular.identity
});
При попытке загрузить файл с помощью URL https://storage.googleapis.com/bucket-name/filename
, я получил следующее сообщение об ошибке.
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.
Когда я удалить флаг withCredentials: true
, используемый в HTTP POST, я получил ответ, как 403, никаких подробностей об ошибках не приводится.
Я устанавливал CORS, как указано в ведре загрузки [{"maxAgeSeconds": 3600, "method": ["GET", "POST", "HEAD"], "origin": ["http://localhost:8088"], "responseHeader": ["Content-Type"]}]
Как включить Access-Control-Allow-Credentials
флаг на сервере?
Hi @Eric, спасибо за ответ. Я попробовал подписанный URL-адрес, так как я предположил, что получил ту же ошибку. Загрузка выполнена успешно, но не загружается. Для загрузки через blobstore у меня возникла другая ошибка, обратитесь к http://stackoverflow.com/questions/38344261/gcs-heap-error-when-file-of-higher-size-was-uploaded. Я не смог успешно использовать заголовок 'Access-Control-Allow-Origin', изменив заголовок по умолчанию httpProvider' $ httpProvider.defaults.headers.common ['Access-Control-Allow-Origin'] = '*'; 'с' withCredentials : false' настройка не очень помогла. Не могли бы вы посоветовать мне использовать заголовок? – SetV
Вам необходимо установить этот заголовок на _response_, отправленный с вашего _server_, без запроса от вашего клиента. Поэтому в вашем Java-коде (который я вижу, это ваш язык выбора из другого связанного вами вопроса), вы можете использовать 'resp.setHeader (« Access-Control-Allow-Origin »,« * »);'. –
Hi @Eric, я могу придерживаться ваших первых двух решений. Это действительно помогает! – SetV