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

时间:2018-08-23 22:36:31

标签: 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('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)
        })
    })
}

0 个答案:

没有答案