我正在使用一个称为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)
})
})
}