Node.js的AWS-SDK。如何通过提供URL下载文件(图像)

Node.js的AWS-SDK。如何通过提供URL下载文件(图像),node.js,amazon-web-services,amazon-s3,Node.js,Amazon Web Services,Amazon S3,我正在使用一个名为Icecat的API。它们本质上是一个产品目录。他们提供的功能之一是产品的图像。为了确保快速交付和一致的正常运行时间,我希望使用S3 下面你可以看到我上传文件的方法。我真正想做的就是把Icecat的图像放到我的S3存储桶上。到目前为止,我还没有找到一种简单的方法将文件从公共URL放到s3存储桶中 任何帮助都将不胜感激 const AWS = require('aws-sdk') const fs = require('fs') const path = require('pat

我正在使用一个名为Icecat的API。它们本质上是一个产品目录。他们提供的功能之一是产品的图像。为了确保快速交付和一致的正常运行时间,我希望使用S3

下面你可以看到我上传文件的方法。我真正想做的就是把Icecat的图像放到我的S3存储桶上。到目前为止,我还没有找到一种简单的方法将文件从公共URL放到s3存储桶中

任何帮助都将不胜感激

const AWS = require('aws-sdk')
const fs = require('fs')
const path = require('path')

const testfile = fs.readFileSync(path.resolve(__dirname + 'favicon.png'))

const BUCKET_NAME = 'mywishes'
const IAM_USER_KEY = 'xxxx'
const IAM_USER_SECRET = 'yyyy'

export function uploadToS3 (file) { 
    let s3bucket = new AWS.S3({
        accessKeyId: IAM_USER_KEY,
        secretAccessKey: IAM_USER_SECRET,
        Bucket: BUCKET_NAME
    })

    s3bucket.createBucket(function () {
        const params = {
            Bucket: BUCKET_NAME,
            Key: file.key,
            Body: file.body,
            ACL: 'public-read',
            ContentType: file.mime || 'image/jpg'
        }
        s3bucket.upload(params, function (err, data) {
            if (err) {
                console.log('error in callback')
                console.log(err)
            }
            console.log('success')
            console.log(data)
        })
    })
}

如果这些是真实的AWS凭据,请创建一组新的凭据,并立即停用(并最终删除)显示的凭据。您的代码有一些问题。请查看以下两个示例:a)创建一个bucket和b)在中上载到bucket。