2016-07-18 289 views
1

如何使用图像的URL将现有图像上传到AWS S3(我正在使用适用于Node.js的AWS开发工具包)?我正尝试从Parse迁移图片,我可以访问其中的网址。我有事设立这样的:如何使用图像URL将图像上传到AWS S3?

let params = { 
    Key: 'sampleurl.png', 
    Bucket: Config.get('server.s3.bucket'), 
    Body: ???, // ? 
    ACL: 'public-read' 
}; 

s3Client.upload(params, (err, data) => { 
    if (err) { throw err; } 

    return data.Location; 
}); 

我怎么会重新上传,例如,在“http://files.parsetfss.com/something/something.png”到AWS的图像?

+0

没有做过的“files.parse.com”,但可是,你这个迁移可以检查这个proj:https://github.com/parse-server-modules/parse-files-utils使用报告,IMO你可以在http上访问url(http GET),而不需要master或api key。因此,您可以使用链接项目的报告中的公共URL通过脚本迁移到S3 –

+0

考虑首先下载图像并将其上传到S3。看来这篇文章可能会给你关于第一部分的提示:http://stackoverflow.com/questions/12740659/downloading-images-with-node-js – Conti

回答

1

我用锋利的上传图片从网址到S3:

sharp(fileUrl).toBuffer(function(err, outputBuffer) { 
    if (err) { 
    reject(err); 
    } 

    s3client.upload({ 
    ACL:'public-read', 
    Body: outputBuffer 
    }, function(err, result) { 
    if (err) { 
     reject(err); 
    } 

    resolve(result.Location); 

    }); 

}); 

也许会帮助你;)

+0

这个答案对我来说不起作用,不断得到一个“输入文件丢失或不支持的图像格式“错误,但使用节点的请求模块的以下答案首先尝试工作 - https://stackoverflow.com/q/22186979/907388 – pbojinov

相关问题