Я пытаюсь получить доступ к памяти ведро Google облако с Аксиос, чтобы загрузить файл:InvalidPolicyDocument, недостающее ошибка политики хранения Google облако
я установить политику CORS в ведре:
[
{
"origin": ["http://localhost:8000", "localhost"],
"responseHeader": ["Access-Control-Allow-Origin", "Content-Type"],
"method": ["GET", "HEAD", "DELETE", "PUT", "POST"],
"maxAgeSeconds": 3600
}
]
Тогда Я генерировать подписанный URL, используя эту команду: GSUtil
gsutil signurl -m RESUMABLE -d 1h my-key.json gs://test-bucket/
Тогда я, наконец, отправить этот запрос Вардар POST:
var startLink = "signed url from gsutil"
var data = {
'Content-Length': 0,
'Content-Type': 'text/plain',
'x-goog-resumable': 'start',
host: 'test-django-bucket.storage.googleapis.com',
};
axios.post(startLink, data)
.then(function(response) {
console.log(respone);
});
Этот результат я получаю:
<?xml version='1.0'
encoding='UTF-8'?><Error><Code>InvalidPolicyDocument</Code><Message>The content of the form does not meet the conditions specified in the
policy document.</Message><Details>Missing policy</Details></Error>
Что именно я сделал не так? Я следую инструкциям here.
Update: Пара заметок о том, что я должен был исправить, чтобы получить все работает после того, как несколько раз из @BrandonYarbrough ниже:
Первый запрос Вардар был неправ, он должен быть:
var data = {
headers: {
'content-type': 'text/plain',
'x-goog-resumable': 'start',
}
};
axios.post(startLink, {}, data)
.then(function(response) {
console.log(response);
});
Далее я должен был обновить gstuil команду, как описано ниже:
gsutil signurl -m RESUMABLE -d 10h -c "text/plain" mykey.json gs://test-bucket
Дальнейшее уточнение, прочитав здесь документацию, кажется, что мне не нужен документ политики вообще, поскольку я использую подписанный URL, но ... https://cloud.google.com/storage/docs/access-control/ – Ian