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

how to upload file to azure blob with original file name using Fine Uploader

我正在将名为 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 的 bloburi 吗?

我该如何实现?

当我的请求到达我的后端 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
            },
        }
})

默认情况下,文件上传器 azure 将使用 UUID 来命名您的对象。在大多数情况下,这是最安全的行为

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

如果您必须使用不同的名称将 blob 保存在 azure 中,您可以适当修改 blobProperties.name 选项。

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

有关更多详细信息,您可以阅读此 option