Я пытаюсь внедрить библиотеку FineUploader React в свое приложение React для загрузки файлов в хранилище BLOB-объектов Azure.
Похоже, что по какой-то причине FineUploader неправильно получает URI хранилища больших двоичных объектов.
Вот как я создаю FineUploader в своем тестовом компоненте:
import React, { Component } from 'react';
import FineUploaderAzure from 'fine-uploader-wrappers/azure'
import Gallery from './gallery/index';
const uploader = new FineUploaderAzure({
options: {
cors: {
expected: true,
sendCredentials: true
},
signature: {
endpoint: 'https://myapp.com/api/getsas'
},
request: {
endpoint: 'https://myaccount.blob.core.windows.net/test-container'
},
uploadSuccess: {
endpoint: 'https://myapp.com/api/done'
}
}
})
class Index extends Component {
render() {
return (
<Gallery uploader={uploader} />
)
}
}
export default Index;
Вот ошибка, которую я вижу в консоли. Похоже, FineUploader использует неправильный URI для хранилища BLOB-объектов.
Есть идеи, что может быть причиной этого?
ОБНОВЛЕНИЕ: в соответствии с предложением @ GauravMantri я изменил endpoint
на containerUrl
в разделе параметров, но это тоже не помогло. Вот как это выглядит:
const uploader = new FineUploaderAzure({
options: {
cors: {
expected: true,
sendCredentials: true
},
signature: {
endpoint: 'https://myapp.com/api/getsas'
},
request: {
containerUrl: 'https://myaccount.blob.core.windows.net/test-container'
},
uploadSuccess: {
endpoint: 'https://myapp.com/api/done'
}
}
})
Вот SAS, который я получаю, когда отправляю запрос через Postman: Запрос, который я отправляю:
http://example.com/api/files/get/sas?blobUri=https://myaccount.blob.core.windows.net/test-container/test.txt&_method=put
И вот SAS, который я получаю:
"?sv=2017-04-17&sr=b&sig=7pXTnI2r8uGyZms12T9cRvHg1XlLI53ZJtwPUwGElnY%3D&st=2017-12-28T14%3A02%3A56Z&se=2017-12-28T14%3A22%3A56Z&sp=w"
request
равноendpoint
, однако, когда я смотрю сюда: docs.fineuploader.com/api/options-azure.html#request-option, имя параметра -containerUrl
. Не уверен, что это вызывает проблему. 2) Можете ли вы поделиться SAS, возвращаемым вашей службой (очевидно, скрывая имя учетной записи и другие детали)? - person Gaurav Mantri   schedule 24.12.2017containerUrl
, но это не помогло. Я обновил исходный пост, чтобы показать вам, как выглядит мойoptions
раздел. Я также отправилSAS
, который получил от моего сервера. Спасибо за помощь. - person Sam   schedule 28.12.2017"
), которые экранируются в%22
. 2) Несмотря на то, что вы создаете SAS для файла с именемtest.txt
, это имя не включается в ваш запрос на загрузку (из снимка экрана с ошибкой Chrome). - person Gaurav Mantri   schedule 28.12.2017string
. Не следует ли заключать его в двойные кавычки? - person Sam   schedule 28.12.2017containerUrl
. - person Sam   schedule 28.12.2017JSON
объект. Что насчет вашего беспокойства по поводу отсутствия имени файла в SAS? Есть идеи, что может быть причиной этого? - person Sam   schedule 28.12.2017restype=container
в свой SAS. Как вы думаете, это решение моей проблемы? В остальном все выглядит правильно. - person Sam   schedule 29.12.2017