微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

AWS:上传到 S3 的 pdf 文件是空白的

如何解决AWS:上传到 S3 的 pdf 文件是空白的

我通过 sFTP 阅读了一个 pdf 文件,然后将其上传到 S3。当我从 S3 下载文件并在 pdf 查看器中打开它时,它是一个空白文档。 sFTP 上的文件大小为 40kb,但在 S3 上为 80kb。

这是我通过 sftp 下载的方式:

sftp.readFile(filePath,'utf-8',(error,content) => {
  if (error) throw error;
  conn.end();
  resolve(content);
});

这就是我上传到 S3 的方式:

const uploadParams = {
  Bucket: bucket,Key: '',Body: '',ContentType: 'application/pdf'
};

uploadParams.Body = content;
uploadParams.Key = fileAttributes.s3Location;

logger.debug('Uploading to S3',uploadParams);
// call S3 to retrieve upload file to specified bucket
try {
  const stored = await s3.putObject(uploadParams).promise();
  logger.info('Upload Success',stored);
} catch (err) {
  logger.error('S3 upload error',err);
  throw err;
}

也许使用的编码有问题?

解决方法

解决方案是删除编码。它似乎被正确自动检测到,并且文件内容在 S3 中可见。改成这样:

sftp.readFile(filePath,(error,buffer) => {
  if (error) throw error;
  conn.end();
  resolve(buffer);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。