如果您尝试使用 AWS JavaScript SDK 将 PDF 文件上传到 S3 存储桶时,上传的文件可能会出现为空的问题。此问题的可能原因是您在初始化 S3 对象时未正确设置上传文件的数据。
以下是使用 AWS JavaScript SDK 和 Node.js 解决此问题的示例代码:
const AWS = require('aws-sdk');
const fs = require('fs');
const s3 = new AWS.S3({
accessKeyId: 'ACCESS_KEY_ID',
secretAccessKey: 'SECRET_ACCESS_KEY'
});
const fileContent = fs.readFileSync('path/to/pdf');
const params = {
Bucket: 'BUCKET_NAME',
Key: 'path/to/pdf',
Body: fileContent,
ContentType: 'application/pdf'
};
s3.upload(params, function(err, data) {
if (err) {
console.log("Error uploading file:", err);
} else {
console.log("Successfully uploaded file to S3:", data.Location);
}
});
在此代码中,我们首先初始化了 AWS.S3 对象并设置了访问密钥 ID 和密钥。然后,我们读取了 PDF 文件内容并将其设置为上传参数的 Body 属性。我们还设置了 ContentType 属性,因为您要上传的文件类型为 application/pdf。
最后,我们使用 S3.upload 方法将文件上传到 S3 存储桶。如果存在错误,则在控制台输出错误消息。否则,您将看到成功上传的消息和文件位置。
使用此示例代码,您应该能够解决 AWS JS SDK 中上传空文件的问题。