Azure Хранилище: загрузка изображения на azure хранилище завершается успешно, но вместо изображения создается папка - PullRequest
1 голос
/ 14 апреля 2020

Azure storage screenshot of my accout Я использовал этот angular azure сервис BLOB-объектов для загрузки BLOB-объектов (изображений) в azure хранилище. Это успешная загрузка изображения в хранилище 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 для исходного кода NPM.

Ниже приведен объект конфигурации, содержащий данные токена SAS : Config: 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", storageAccount: "demo", containerName: "demo-images" }

1 Ответ

1 голос
/ 14 апреля 2020

Я считаю, что проблема в названии блоба. Предполагая, что вы правильно скопировали имя большого двоичного объекта в одном из комментариев, оно выглядит следующим образом:

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

Если вы заметили, в имени вашего большого двоичного объекта есть конечная буква sh (/) и Из-за этого пользовательский интерфейс портала (или, в этом отношении, любой другой пользовательский интерфейс Storage Explorer) будет обрабатывать это как виртуальную папку, и, следовательно, вы видите это как папку.

Пожалуйста, проверьте свой код еще раз, особенно как переустанавливать имя блоба. Это должно быть 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
...