如何将文件从远程服务器传输到我的Amazon S3实例?

时间:2012-11-20 19:14:56

标签: amazon-s3 amazon

我需要将5个文件中的大约15个数据传输到Amazon S3存储桶,它们当前托管在我没有脚本或shell访问权限的远程服务器上 - 我只能通过httpd下载它们链接。

如何将这些文件传输到我的Amazon S3存储桶,而无需先将其下载到本地计算机,然后将其重新上传到S3?

3 个答案:

答案 0 :(得分:2)

如果要自动执行该过程,请使用AWS开发工具包。

与以下情况类似,使用AWS PHP SDK:

use Aws\Common\Aws;

$aws = Aws::factory('/path/to/your/config.php');
$s3 = $aws->get('S3');

$s3->putObject(array(
    'Bucket'     => 'your-bucket-name',
    'Key'        => 'your-object-key',
    'SourceFile' => '/path/to/your/file.ext'
));

更多详情:

http://blogs.aws.amazon.com/php/post/Tx9BDFNDYYU4VF/Transferring-Files-To-and-From-Amazon-S3 http://docs.aws.amazon.com/aws-sdk-php/guide/latest/service-s3.html

答案 1 :(得分:1)

鉴于您只有5个文件,请在将文件下载到某个中间计算机后使用S3文件上传程序http://console.aws.amazon.com/s3/home?region=us-east-1(操作,上载)。运行Windows的EC2可能是最好的解决方案,因为上传到S3会非常快。您可以从chrome.google.com将Chrome下载到您的EC2实例,或使用现有的网络浏览器(IE)来完成这项工作。

答案 2 :(得分:0)

[1]带密钥的SSH

    sh-keygen -f ~/.ssh/id_rsa -q -P ""
    cat ~/.ssh/id_rsa.pub

将此SSH密钥放入〜/ .ssh / authorized_keys文件

    mkdir ~/.ssh 
    chmod 0700 ~/.ssh
    touch ~/.ssh/authorized_keys
    chmod 0644 ~/.ssh/authorized_keys

[2]快照ZFS,使用LZMA最小化传输,使用RSYNC发送

    zfs snapshot zroot@150404-SNAPSHOT-ZROOT
    zfs list -t snapshot

使用lzma压缩文件(比bzip2更有效)

    zfs send zroot@150404-SNAPSHOT-ZROOT | lzma -9 > /tmp/snapshots/zroot@150404-SNAPSHOT-ZROOT.lzma
    rsync -avz -e "ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null" --progress --partial /tmp/snapshots/zroot@150404-SNAPSHOT-ZROOT.lzma <username>@<ip-address>:/

[3]使用MBUFFER进行加速传输,使用ZFS发送/接收发送 首先启动接收器。它侦听端口9090,有1GB缓冲区,并使用128kb块(与zfs相同):

    mbuffer -s 128k -m 1G -I 9090 | zfs receive zremote

现在我们发送数据,也通过mbuffer发送它:

    zfs send -i zroot@150404-SNAPSHOT-ZROOT zremote@150404-SNAPSHOT-ZROOT | mbuffer -s 128k -m 1G -O <ip-address>:9090

[4]仅通过发送差异来加速转移

    zfs snapshot zroot@150404-SNAPSHOT-ZROOT
    zfs snapshot zroot@150405-SNAPSHOT-ZROOT [e.g. one day later]
    zfs send -i zroot@150404-SNAPSHOT-ZROOT zroot@150405-SNAPSHOT-ZROOT | zfs receive zremote/data

另见my notes