首页 > 解决方案 > Javascript 使用 msgreader 的附件提取并上传到 Azure blob 存储

问题描述

我一直在使用 MSG Reader 将电子邮件和附件提取到带有 Javascript 的系统中。

我想将提取的附件上传到 azure 存储 blob。

它上传,但文件不断损坏。

这是我到目前为止所拥有的:

 fileReader.onload = function (evt) {
    var buffer = evt.target.result;
    var msgReader = new MSGReader(buffer);
    var fileData = msgReader.getFileData();
    if (!fileData.error) {
        jQuery.map(fileData.attachments, function (attachment, i) {
            var file = msgReader.getAttachment(i);
            extension = (/[.]/.exec(attachment.fileName)) ? /[^.]+$/.exec(attachment.fileName) : '';
            var blobOptions;
            switch(extension[0]) {
                case 'pdf':
                    blobOptions = {blobHTTPHeaders: { blobContentType: 'application/pdf'}};
                    blobtype = 'application/pdf';
                    break;
                default:
                    blobOptions = {blobHTTPHeaders: { blobContentType: 'application/octet-stream' }};
                    blobtype = 'application/octet-stream';
            }
            const blockBlobURL = azblob.BlockBlobURL.fromContainerURL(containerURL, attachment.fileName);
            azblob.uploadBrowserDataToBlockBlob(azblob.Aborter.none, new File([JSON.stringify(file.content)], attachment.fileName, {type:blobtype}), blockBlobURL, blobOptions);
            return;
        });
    }
};

标签: javascriptazureazure-blob-storagemsg

解决方案


排序。我认为我只是使用了错误的 blob 格式或其他东西。


推荐阅读