如何使用Fine Uploader将文件上传到具有原始文件名的azure blob

时间:2018-02-20 05:30:13

标签: fine-uploader azure-blob-storage

我正在将一个名为my-image.jpg的文件上传到我的blob容器中,其端点为Azure上的https://myaccount.blob.core.windows.net/my-container

之后,它会调用SaS令牌的签名端点并生成对Azure blob的PUT请求。在这里,我观察到PUT请求不包含原始文件名而不是某些GUID替换文件名。

我希望我的原始文件名在PUT请求中,以便文件将以原始名称上传到Blob上。

然后https://myaccount.blob.core.windows.net/my-container/89056c3d-7bb3-my-image.jpg会在我申请SAAS时发送给我的API吗?

我如何实现这一目标?

当我的请求到达我的后端API以获取SAS时,blobUri以/server/upload/some-guid-value.txt的形式出现。我在实例化上传器时使用以下选项。我做错了什么?

const uploader = new qq.azure.FineUploader({
        element: document.getElementById('fine-uploader-manual-trigger'),
        template: 'qq-template-manual-trigger',
        request: {
            endpoint: 'https://myaccount.blob.core.windows.net/my-container',

        },
        signature: {
            endpoint: 'http://localhost:4879/api/getsas',
            cors:{
                expected: true,
                sendCredentials: false
            },
        }
})

1 个答案:

答案 0 :(得分:0)

默认情况下,File Uploader azure将使用UUID命名您的对象。在大多数情况下,这是最安全的行为

如果更改此值,则在发生名称冲突时,您将面临使用新文件覆盖现有文件的风险。

如果必须使用其他名称将blob保存为azure,则可以适当修改blobProperties.name选项。

值“ filename ”将使用原始文件名保存对象。

有关详情,请参阅此option