Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如果我为静态网站托管配置了一个s3存储桶,那么我可以通过API将资产上传到它吗?_Javascript_Node.js_Amazon Web Services_Amazon S3_Aws Sdk - Fatal编程技术网

Javascript 如果我为静态网站托管配置了一个s3存储桶,那么我可以通过API将资产上传到它吗?

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文档:但它不起作用,我看了一下,根据它,一旦我们切换到静态托管,只获

我有一个s3存储桶,我已经为静态网站托管配置了它,现在我经常需要更改我网站的资产,
我已经有了一个自定义工具,可以将资产上传到我的另一个存储桶中。是否可以通过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)
            }