javascript - 上传到s3后无法查看PDF。上传图像工作正常(NodeJS)

标签 javascript node.js amazon-s3 aws-sdk

我已经使用 aws-sdk 上传图像有一段时间了,没有任何问题,但最近需要上传 pdf。我想我可以使用相同的功能

看起来我在上传时得到了成功的响应,但当我尝试打开 PDF 时,我得到无法加载 PDF 文档。

我尝试使用 putObject 而不是 uploadObject,但没有成功。

这是我当前正在使用的代码

var deferred = q.defer();
var s3 = new AWS.S3();
var buf = new Buffer( file.replace( /^data:image\/\w+;base64,/, '' ), 'base64' );
var params = { 
    Bucket: config.bucket, 
    Key: config.environment + '/' + fileName, 
    ContentType: fileType, 
    Body: buf 
};


s3.upload( params, function( err, data ) {
    err ? console.log( err ) : console.log( data );
    deferred.resolve( data );
} );
return deferred.promise;

最佳答案

啊哈!

因此,我从第 3 行的数据中删除了 mime 类型,以便仅保留文件数据,但 pdf 文件没有以图像开头的 mime 类型,因此我的正则表达式不会拾取它。它实际上是 application/pdf

我发现了一种更好的方法来删除 mime 类型,而不管文件类型如何。将第三行替换为:

var fileWithoutMimeType = file.match( /,(.*)$/ )[ 1 ];
var buf = new Buffer( fileWithoutMimeType, 'base64' );

关于javascript - 上传到s3后无法查看PDF。上传图像工作正常(NodeJS),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47321096/

相关文章:

javascript - Angular 中的重复功能失败

node.js - 错误 - 类型错误 : Type error only on Safari after made GET request to the api server inside angular 5 app

node.js - 单个 Heroku 应用程序上的多个工作程序/Web 进程

ruby-on-rails - 使用 Assets 管道从 s3 提供 GZipped 文件

javascript - dc.js 1.7 中的饼图图例未显示

javascript - 动态更改 Div 大小

javascript - 使用谷歌地图查找大量节点的最短路径

node.js - mongoose.connect 连接到 mongodb 后不调用回调

amazon-s3 - DynamoDB 是否适合作为 S3 元数据索引?

amazon-s3 - 如何检测 Amazon S3 中的变化?