Javascript 获取上传文件到S3的URL(上传文件后)
给定一个链接,当用户点击该链接时,会下载PDF 我想把文件上传到S3,然后得到一个公开的AmazonS3URL(我不想让用户看到真正的链接,所以我宁愿上传到S3) 以代码为例:Javascript 获取上传文件到S3的URL(上传文件后),javascript,node.js,amazon-web-services,amazon-s3,Javascript,Node.js,Amazon Web Services,Amazon S3,给定一个链接,当用户点击该链接时,会下载PDF 我想把文件上传到S3,然后得到一个公开的AmazonS3URL(我不想让用户看到真正的链接,所以我宁愿上传到S3) 以代码为例: module.exports = class S3Uploader { uploadPdfFromURLToS3 = urlToUpload => { import aws from "aws-sdk"; const request = require("request"); const
module.exports = class S3Uploader {
uploadPdfFromURLToS3 = urlToUpload => {
import aws from "aws-sdk";
const request = require("request");
const s3 = new aws.S3();
const config = require("config");
var uuidv4 = require("uuid/v4");
var filename = uuidv4() + ".pdf";
aws.config.update({
accessKeyId: config.get("-------------"),
secretAccessKey: config.get("-----------------")
});
var promise = new Promise((resolve, reject) => {
return request({ url: urlToUpload, encoding: null }, function(
err,
res,
body
) {
if (err) return reject({ status: 500, error: err });
return resolve({ status: 200, body: body });
});
});
promise.then(pdf => {
if (pdf.status == 200) {
s3.putObject(
{
Bucket: "-----Your-Bucket-Name",
Body: pdf.body,
Key: filename,
ACL: "public-read"
},
(err, data) => {
if (err) console.log(err);
else
{
console.log("uploaded");
// Get the S3 Public link ????
}
}
);
}
});
};
};
文件成功上传后,如何在回调中获取链接 您可以使用字符串连接来建立url
确保您使用的区域正确。您可以使用字符串连接来建立url 确保您使用的区域正确。您可以尝试在
控制台.log(“上载”)行中添加$(data.Location)
console.log("uploaded. $(data.Location)");
您可以尝试在控制台.log(“上载”)
行中添加$(data.Location)
console.log("uploaded. $(data.Location)");
**试试这个**主要的变化在s3.putObject()中
**试试这个**主要的变化在s3.putObject()中
位置
是未定义的
位置
是未定义的
这是我在应用程序中如何做到的。目前最好的方法!这就是我在我的应用程序中所做的。目前最好的方法!