【发布时间】:2018-06-05 21:58:12
【问题描述】:
我正在尝试在我的 React 应用中实现 FineUploader React 库,以将文件上传到我的 Azure Blob 存储。
看起来出于某种原因,FineUploader 获取了 Blob 存储 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 为 blob 存储使用了错误的 URI。
知道是什么原因造成的吗?
更新:
根据@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'
}
}
})
这是我通过 Postman 发送请求时得到的 SAS: 我发送的请求是:
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"
【问题讨论】:
-
一些事情: 1)在这里查看请求选项时:docs.fineuploader.com/quickstart/02-setting_options-azure.html,
request下的参数名称是endpoint但是当我在这里查看时:docs.fineuploader.com/api/options-azure.html#request-option,参数名称是containerUrl。不确定这是否会导致此问题。 2)您能否分享您的服务返回的 SAS(显然混淆了帐户名和其他详细信息)? -
@GauravMantri 抱歉回复晚了。我尝试将参数更改为
containerUrl,但这似乎没有帮助。我已经更新了原始帖子,向您展示了我的options部分的样子。我还发布了我从后端收到的SAS。感谢您的帮助。 -
不用担心山姆:)。我注意到了一些事情:1)由于某种原因,传递的 SAS 令牌包含双引号(
"),它被转义为%22。 2) 即使您为名为test.txt的文件生成 SAS,该名称也不包含在您的上传请求中(来自 Chrome 错误屏幕截图)。 -
所以我的 API 返回一个
string。不应该用双引号括起来吗? -
没错。但我无法理解的是为什么双引号也包含在您的请求 URL 中。您是否在 API 层的 SAS 令牌中手动添加双引号?
标签: azure fine-uploader azure-blob-storage