javascript - Azure存储: Uploading image on azure storage getting successful but creating folder instead of Image

标签 javascript angular azure azure-blob-storage angular8

Azure storage screenshot of my accout我用过这个angular azure blob service用于在 azure 存储上上传 blob(图像)。 这是在 azure 存储上成功上传图像,但如果我们查看 azure 帐户,会发现一个使用所选图像名称而不是实际图像创建的文件夹。

upload() {
    if (this.currentFile !== null) {
        const baseUrl = this.blob.generateBlobUrl(
            this.Config,
            this.currentFile.name
        );
        console.log(baseUrl);

        this.config = {
            baseUrl: baseUrl,
            sasToken: this.Config.sas,
            blockSize:
                this.currentFile.size > 1024 * 1024 * 32
                    ? 1024 * 1024 * 4
                    : 1024 * 512, // OPTIONAL, default value is 1024 * 32
            file: this.currentFile,
            complete: () => {
                console.log("Transfer completed !");
            },
            error: err => {
                console.log("Error:", err);
            },
            progress: percent => {
                console.log("Transfer completed =", percent);
                // this.percent = percent;
            }
        };
        console.log(this.config);

        this.blob.upload(this.config);
    }
}

这是上传函数,负责上传图片。请让我知道这里出了什么问题。 我将其与 Angular 8 一起使用。

这是Github link获取 NPM 源代码。

以下是我的配置对象,其中包含 SAS token 详细信息: 配置:UploadParams = { SAS: “https://demo.blob.core.windows.net/?sv=2019-02-02&ss=bfqt&srt=sco&sp=rwdlacup&se=2020-04-13T22:29:27Z&st=2020-04-13T14:29:27Z&spr= https,http&sig=PBJ62e8SU5%2FAef5Npmun5nvzZanb5UbVXqhJ17U1bGE%3D", 存储帐户:“演示”, 容器名称:“演示图像” }

最佳答案

我认为问题出在 blob 的名称上。假设您在注释之一中正确复制了 blob 名称,则它会显示为:

https://demo.blob.core.windows.net/demo-images/download.jpghttps:/

如果您注意到,您的 blob 名称中有一个尾部斜杠 (/),因此门户 UI(或任何其他存储资源管理器 UI)会将其视为虚拟文件夹,因此您将其视为一个文件夹。

请再次检查您的代码,特别是您如何设置 blob 的名称。它应该是https://demo.blob.core.windows.net/demo-images/download.jpg

更新

正如我怀疑的那样,您的配置对象中的 sas 参数存在问题。您正在传递 SAS URL 而不是 SAS token 。请将您的 sas 参数更改为:

?sv=2019-02-02&ss=bfqt&srt=sco&sp=rwdlacup&se=2020-04-13T22:29:27Z&st=2020-04-13T14:29:27Z&spr=https,http&sig=PBJ62e8SU5%2FAef5Npmun5nvzZanb5UbVXqhJ17U1bGE%3D

关于javascript - Azure存储: Uploading image on azure storage getting successful but creating folder instead of Image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61203953/

相关文章:

javascript - Three.js - ply 文件 - 为什么是无色的?

javascript - 如何使用 Bootstrap 选项卡?

azure - Azure 中的重定向服务 (302),最好的方法是什么?

Mysql 数据库大小增长超过 4 TB? Azure 最多支持 4 个

javascript - 使用 JS 获取希伯来历日期

javascript - ng-model 的 Angular Directive(指令)不绑定(bind)

angular - 如何使用 Angular App Shell 模型保护 App Shell

angular - 在没有 Angular CLI 的情况下部署 Angular 6 项目

javascript - typescript 和 d3 版本 v3 中的可折叠树

azure - 将 Intune 范围标记分配给 Azure Azure AD 组