Javascript 如果我为静态网站托管配置了一个s3存储桶,那么我可以通过API将资产上传到它吗?
我有一个s3存储桶,我已经为静态网站托管配置了它,现在我经常需要更改我网站的资产,Javascript 如果我为静态网站托管配置了一个s3存储桶,那么我可以通过API将资产上传到它吗?,javascript,node.js,amazon-web-services,amazon-s3,aws-sdk,Javascript,Node.js,Amazon Web Services,Amazon S3,Aws Sdk,我有一个s3存储桶,我已经为静态网站托管配置了它,现在我经常需要更改我网站的资产, 我已经有了一个自定义工具,可以将资产上传到我的另一个存储桶中。是否可以通过AWS API将文件上传到我的s3存储桶中?是的,这是一种完全可以接受的上传新资产的方式,不是我怎么做的,但它应该可以正常工作,最终不管您选择如何上传这些资产,很有可能它正在使用相同的API调用。您可以使用AWS-SDK上传到S3 bucket NPM包: 阅读更多@AWS文档:但它不起作用,我看了一下,根据它,一旦我们切换到静态托管,只获
我已经有了一个自定义工具,可以将资产上传到我的另一个存储桶中。是否可以通过AWS API将文件上传到我的s3存储桶中?是的,这是一种完全可以接受的上传新资产的方式,不是我怎么做的,但它应该可以正常工作,最终不管您选择如何上传这些资产,很有可能它正在使用相同的API调用。您可以使用AWS-SDK上传到S3 bucket NPM包:
阅读更多@AWS文档:但它不起作用,我看了一下,根据它,一旦我们切换到静态托管,只获取并处理请求。哦,好的,我会试试,顺便说一句,我当前的自定义工具使用签名请求上传文件,但这不起作用,我是否缺少一个设置,或者它无法与配置为静态托管的bucket一起工作?尝试将资产转储到另一个bucket中,并将该bucket中的资产用于静态网站。
// Load the AWS SDK for Node.js
var AWS = require('aws-sdk');
// Set the region
AWS.config.update({ region: 'REGION' });
// Create S3 service object
s3 = new AWS.S3({ apiVersion: '2006-03-01' });
const s3 = new AWS.S3();
const params = {
Bucket: S3_BUCKET, //bucket name
Key: `${s3Folder}/${filename}`, // type is not required
Body: base64, //image base64
ACL: 'public-read',
ContentEncoding: 'base64', // required
ContentType: `image/${fileType}` // required. Notice the back ticks
}
let location = '';
let key = '';
try {
const { Location, Key } = await s3.upload(params).promise();
location = Location;
key = Key;
console.log({ location, key })
} catch (error) {
console.log("Error", error)
}