Сохранение двоичных данных в хранилище больших двоичных объектов Azure с помощью createBlockBlobFromText?

На основании этого сообщения, это должно быть возможно. Однако я не могу заставить его работать. Одна запутанная часть заключается в том, что я использую правильную версию azure-storage? В этом посте Тимм сказал год назад

Это выпущено в 0.9.x.

Однако версии 0.9 нет. Последней версией azure-storage является 0.6.0.

Вот код моего сервера (node.js):

var buf = new Buffer(upd.picture, 'binary');
blobService.createBlockBlobFromText(containerName, fileName, buf, function (error, result, response) {
});

На стороне клиента (angular.js) двоичные данные читаются так:

var file = document.getElementById('file').files[0];
var reader = new FileReader();
reader.onloadend = function (e) {
    upd.picture = e.target.result;
    ....
}
reader.readAsBinaryString(file);

Для моего тестирования я загрузил изображение в формате jpg, файл, сохраненный в лазурном BLOB-объекте, не может отображаться в веб-браузере. Однако, если я использую createBlockBlobFromLocalFile для загрузки файла, он работает. Что я сделал не так?

ОБНОВЛЕНИЕ:

Хорошо, я наконец понял это. Мне просто нужно изменить одну строку выше на

var buf = new Buffer(upd.picture.substr(23), 'base64');

Проблема заключалась в том, что файл уже преобразован в base64 с заголовком «data:image/jpeg;base64», что испортило двоичные данные.


person newman    schedule 20.09.2015    source источник
comment
Возможно, вам нужно будет предоставить заголовок Content-Type, говорящий, что это изображение. Взгляните на этот пост: stackoverflow.com/questions/15450102/   -  person Emmanuel DURIN    schedule 20.09.2015
comment
Я тоже задавался этим вопросом, но что я должен указать в качестве типа контента?   -  person newman    schedule 20.09.2015
comment
Я пытался добавить options = {contentType: 'image/jpeg', contentTypeHeader: 'image/jpeg'}, но это не помогло.   -  person newman    schedule 21.09.2015


Ответы (1)


Чтобы прояснить проблему с версией, версия timm — это версия модуля "azure. Теперь пакет Azure Storage SDK выпущен с модулем azure-storage. Использование последнего модуля может решить вашу проблему.

person Yang Xia - Microsoft    schedule 22.09.2015
comment
Спасибо за разъяснение. - person newman; 22.09.2015