Встроенный узел поддерживает только ecnode Buffer
type для base64
, так как вы не хотите загружать BLOB-объекты на локальный сервер, вы должны использовать внешний модуль для кодирования stream
.
npm install base64-stream
, затем используйте приведенный ниже код.
var base64 = require('base64-stream');
...
this.blobService.createReadStream(container, path).pipe(base64.encode()).pipe(res);
Обратите внимание, что в своем последующем вопросе вы указываете Content-Type
, используя
res.header('Content-Type', properties['contentType']);
Content-Type
настройка должна быть опущена.В моем тесте, если установить Content-Type
успешно, изображение будет загружено как вложение, а не как встроенный контент.Ваш код успешен, потому что он на самом деле устанавливает Content-Type
в undefined
.
Используемые вами свойства - это BlobResult (формат Json) с информацией о BLOB-объектах
BlobResult {
container: xxx,
...
contentSettings:
{ contentType: 'image/jpg',
contentMD5: 'uNkt2WJ75X13TjQbfY7qkA==' },
...
}
Так что contentType
следует использовать в этом формате properties.contentSettings.contentType