4

我正在尝试找到一种方法将 Internet 中某处的对象放入 Amazon S3,而无需先下载它然后将其上传到 S3。基本可以吗?

我正在使用 Node.js SDK。理想情况下,我想做这样的事情:

s3.client.putObject({
  Bucket: 'my-own-bucket',
  Key: 'myKey',
  BodyFromRemoteRecource: 'https://www.google.com/images/srpr/logo4w.png'
}, function(err, data) {
  if (err)
    console.log(err)
  else
    console.log("Successfully uploaded data to myBucket/myKey");
});
4

2 回答 2

5

如果源已经在 S3 上的某个地方,您可以这样做,但不能用于其他资源。所以不,你不能做你的示例用例要求的。

如果有帮助,您可以将数据从 URL 移动到 S3,而无需在上传前一步完全下载。每个字节仍然必须通过您拥有的某些机器,但是您可以一次获取然后将其放入一个块。

此处记录了整个 S3 API ,您可以检查每个操作并查看没有任何操作可以执行此操作。

于 2013-03-09T22:30:42.720 回答
2

像这样的东西对我来说适用于 PHP2 SDK:

$aws_transfer = $s3->PutObject( array(
    'Bucket' => 'bucket', 
    'Key' => $unique_file_name,
    'Body' => \Guzzle\Http\EntityBody::factory( file_get_contents('http://www.example.com/file.flv') ),
) );
于 2013-04-12T18:36:56.533 回答