1

我需要将 AWS 存储桶中的图像下载到本地目录并压缩下载。

我已经尝试了我的代码,但无法弄清楚如何将图像复制到我的本地目录中。

这是我的功能:

     public function commomUpload($contentId,$prop_id)
 {
    $client = S3Client::factory(array(
                'key' => 'my key',
                'secret' => '----secret-----',
            ));
    $documentFolderName = 'cms_photos';
    $docbucket = "propertiesphotos/$prop_id/$documentFolderName";
            $data = $this->Photo->find('all',array('conditions'=>array('Photo.content_id'=>$contentId)));

    //pr($data);die;
    $split_point = '/';

    foreach($data as $row){
        $string = $row['Photo']['aws_link'];

        $result = array_map('strrev', explode($split_point, strrev($string)));
        $imageName = $result[0];
        $result = $client->getObject(array(
            'Bucket' => $docbucket,
            'Key'    => $imageName
        ));
        $uploads_dir = '/img/uploads/';
        if (!copy($result, $uploads_dir)) {
            echo "failed to copy $result...\n";
        }
        //move_uploaded_file($imageName, "$uploads_dir/$imageName");
    }
}
4

2 回答 2

0

您可以使用 Amazon S3 cakephp 插件https://github.com/fullybaked/CakeS3

于 2013-11-12T07:33:38.513 回答
0

不要把事情复杂化。有一个非常简单的工具叫做 s3cmd。在任何平台上安装它。点击这里了解更多。从 s3 下载图像后,可以使用 gzip 或仅使用 bash 脚本对其进行压缩。不要忘记配置您的 s3cmd。您需要随身携带 AWS 访问密钥和密钥。

于 2013-11-08T11:41:47.513 回答