我被困在很长一段时间的情况。 我想上传一个DOCX文件S3存储,使用无服务器架构
我成功地上传DOCX文档S3 bucket.But发生的事情是,当我从S3打开的文档。 该文件包含转换成BASE64串缓冲器中的数据。 即大串约23页。
该DOCX已损坏。
我的代码
exports.putFile = async(event) =>{
try {
var bitmap = fs.readFileSync('./test.docx');
let bufferValue = new Buffer(bitmap).toString('base64');
const valueFromBucket = await S3.putObject(
{ Body: bufferValue,
Bucket: '********',
Key: '*****.docx',
ContentType: 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
ContentDisposition: 'attachment',
ContentEncoding: 'base64'
}).promise();
return{
statusCode: 200,
body: JSON.stringify(valueFromBucket)
}
}catch(err){
return {
statusCode: err.statusCode || 400,
body: err.message || JSON.stringify(err.message)
}
}
}
Serverless.yml
service: node11
custom:
bucket: ******
provider:
name: aws
runtime: provided # set to provided
stage: dev
region: *****
iamRoleStatements:
- Effect: Allow
Action:
- s3:*
- ses:SendEmail
- ses:SendRawEmail
Resource: "*"
functions:
hello:
handler: handler.*****
memorySize: 1024
events:
- http:
path: /
method: get
layers: # add layer
- arn:aws:lambda:us-east-1:553035198032:layer:nodejs11:3
putFile:
handler: handler.*****
description: put Object using S3 service.
memorySize: 1024
timeout: 5
events:
- http:
path: putfile
method: post
integration: lambda
cors: true
layers: # add layer
- arn:aws:lambda:us-east-1:553035198032:layer:nodejs11:3
我认为代码几乎是工作,但它包含了上传文件在底座64串的这个问题是问题。
任何形式的帮助感激,谢谢提前