AWS SDK-PHP 2

Greg767

2 bài viết

Vì vậy, đối với bất kỳ ai quan tâm, đây là cách tôi đã thực hiện (trên Win8 và WAMP)
Cài đặt Composer cho windows
Để cài đặt thành công, bạn cần bật php-openssl và php-curl trong WAMP. Điều này cũng cần được kích hoạt trong wamp/bin/php/php. ini và không chỉ trên giao diện người dùng WAMP. Ngoài ra, tôi đã chọn cài đặt trình soạn thảo với plugin Explorer, theo cách này, bạn có thể có Trình soạn thảo trong menu ngữ cảnh trong trình khám phá (nhấp chuột phải)

Trong thư mục gốc của dự án (tôi sử dụng netbeans), hãy tạo một trình soạn thảo. json và đặt nội dung này dưới dạng nội dung

{
    "require": {
        "aws/aws-sdk-php": "2.*"
}
}

Nhấp chuột phải vào thư mục gốc của dự án (nơi chứa json) và chọn Composer Install từ menu chuột phải
Điều này sẽ cài đặt mọi thứ

 

Trong thư mục gốc trong chỉ mục. php thêm dòng này

require_once './vendor/autoload.php';

Trong ứng dụng/cấu hình tạo aws_sdk. php với nội dung sau

Trong ứng dụng/thư viện tạo thư mục Aws_sdk

Trong ứng dụng/thư viện/Aws_sdk tạo Aws_sdk. php với những điều sau đây

ci = & get_instance();
        $this->ci->load->config('aws_sdk');
        $this->snsClient = SnsClient::factory(array(
                    'key' => $this->ci->config->item('aws_access_key'),
                    'secret' => $this->ci->config->item('aws_secret_key'),
                    'region' => "us-west-2"
        )); //Change this to instantiate the module you want. Look at the documentation to find out what parameters you need. 
    }

    public function __call($name, $arguments = null) {
        if (!property_exists($this, $name)) {
            return call_user_func_array(array($this->snsClient, $name), $arguments);
        } //Change this accordingly too
    }

//Write your methods to call AWS functionality
    public function SendPushNotification($message, $target)
    {
        $result = $this->snsClient->publish(array(
            'TargetArn' => $target,
            'Message' => $message
        ));
    }
}

Đó là tất cả. Nó làm việc cho tôi

Greg

Tái bút. Nguồn ban đầu của giải pháp này. https. //github. com/fcosrno/aws-sdk-php-codeigniter

Điều này khiến tôi phát điên -- Tôi đã giải quyết vấn đề này trong vài ngày nhưng không mấy thành công. Cuối cùng tôi đã đụng phải một bức tường gạch và cần sự giúp đỡ. Rất nhiều bài báo và diễn đàn mà tôi đã tìm kiếm không có AWSSDK cho PHP 2

Chúng tôi đã sử dụng S3 của Amazon để tải hình ảnh qua iOS trong vài năm qua

Bây giờ, tôi cần triển khai tải lên trong trình duyệt

Tôi đã tải xuống và cài đặt thành công AWSSDK cho PHP 2 trên máy chủ Ubuntu của chúng tôi. Tôi có thể kết nối với tài khoản AWS S3 của chúng tôi và hiển thị nội dung của các bộ chứa. Nhưng tôi không thể đặt hình ảnh vào thùng

Ngoại lệ từ AWS là
Aws\S3\Exception\NotImplementedException. Mã lỗi AWS. Chưa thực hiện, Mã trạng thái. 501, ID yêu cầu AWS. CEDC4BBAA83CF70C, Loại lỗi AWS. máy chủ, Thông báo lỗi AWS. Tiêu đề bạn cung cấp hàm ý chức năng không được triển khai

Đây là URL mà tôi đã lấy mã ví dụ bên dưới, dưới tiêu đề có tên là Tải tệp lên Amazon S3.

Và tôi đã cập nhật mã của mình dựa trên điều này. AWS PHP SDK Phiên bản 2 S3 Lỗi putObject

Nhưng nó vẫn không hoạt động

Đây là mã của tôi

 AMAZON_ACCESS_KEY,
    'secret' => AMAZON_ACCESS_SECRET,
    'region' => Region::US_EAST_1    
);
$s3 = S3Client::factory($config);


try {
    $bucketname = 'my_bucket_name';            //my bucket name on s3
    $filename = 'filename.jpg';                //my image on my server
    $path = 'http://my.website.com/app/cache/remote';        //the path where the image is located
    $fullfilename = $path."/".$filename;

    //this successfully lists the contents of the bucket I am interested in
    foreach ($s3->getIterator('ListBuckets') as $bucket) {
        foreach ($s3->getIterator('ListObjects', array('Bucket' => $bucket['Name'])) as $object) {
            if ( $bucket['Name'] == $bucketname ) {
                echo $bucket['Name'] . '/' . $object['Key'] . PHP_EOL;
            }
        }
    }

    //HERE ME HERE, PLEASE!  this is the code that throws the exception
    $s3->putObject(array(
        'Bucket' => $bucketname,
        'Key'    => $filename, 
        'Body'   => EntityBody::factory(fopen($fullfilename, 'r')),
        'ACL'    => CannedAcl::PUBLIC_READ_WRITE,
        'ContentType' => 'image/jpeg'
    ));


} catch (S3Exception $e) {
    echo $e;
}

?>

Ai đó có thể vui lòng cung cấp cho tôi một ví dụ để tôi có thể tải hình ảnh JPG lên bộ chứa của chúng tôi trên S3 bằng AWSSDK cho PHP 2 không?

AWS PHP SDK là gì?

SDK AWS dành cho PHP cho phép các nhà phát triển PHP sử dụng Amazon Web Services từ mã PHP của họ , đồng thời xây dựng các ứng dụng và phần mềm mạnh mẽ bằng cách sử dụng các dịch vụ như .

Làm cách nào để cài đặt AWS SDK trong PHP?

Cài đặt bằng Composer .
Mở một cửa sổ đầu cuối và điều hướng đến thư mục lưu trữ dự án của bạn. .
Tạo một tệp ở cấp gốc của dự án của bạn có tên là nhà soạn nhạc. json và thêm phần phụ thuộc sau cho AWS PHP SDK. .
Cài đặt các phụ thuộc bằng cách chạy lệnh cài đặt của Composer

AWS có hỗ trợ PHP không?

Bắt đầu nhanh chóng sử dụng AWS với AWS SDK dành cho PHP . SDK là một thư viện PHP mã nguồn mở, hiện đại giúp dễ dàng tích hợp ứng dụng PHP của bạn với các dịch vụ AWS như Amazon S3, Amazon Glacier và Amazon DynamoDB.

Làm cách nào để sử dụng AWS CLI trong PHP?

Sau đây là mã php. .
sao chép. thư mục aws từ/home/Người dùng không root/. aws đến /var/www
Bây giờ thay đổi thư mục thành /var/www (cd /var/www)
Thay đổi quyền. /www$ sudo chmod -R 755. aws
Thay đổi quyền sở hữu /www$ sudo chown -R $USER. $USER. aws
kiểm tra lại