我已经使用 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/