Amazon S3 kullanarak resim yükle

2 Cevap php

Ben Amazon S3 kullanarak belirli bir görüntü yüklemek gerekir

Ben bu PHP var:

<?
$uploaddir = 'images/';
$file = basename($_FILES['userfile']['name']);
$uploadfile = $uploaddir . $file;

if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    echo "Data Uploaded Successfully";
} else {
    echo "ERROR";
}
?>

ama bana bu hatayı veriyor:

<?xml version="1.0" encoding="UTF-8" ?>
<Error>
    <Code>MethodNotAllowe</Code>
    <Message>The specified method is not allowed against this resource.</Message>
    <ResourceType>OBJECT</ResourceType>
    <Method>POST</Method>
    ....
    <AllowedMethod>PUT</AllowedMethod>
    ....
</Error>

Nasıl bir dosya yükleyebilirsiniz?

2 Cevap

Sen veri göndermek için (PHP varsayılan olan) POST yöntemi kullanıyor. En web uygulamaları fiiller GET, PUT ve POST arasındaki differenciate (bakınız W3 RFC on Verbs).

S3 yöntemi olarak <AllowedMethod>PUT</AllowedMethod> kullanmak istiyor. move_uploaded_file bunu yapmak mümkün değildir. Eğer PUT istekleri yapmak için kod yazmaya başlamadan önce, belki bazı PHP S3 libs bir göz atmalısınız.

Zend Framework de bir deneyin, tüm S3 güçlük işlemek için büyük bir sınıf (Zend_Service_Amazon_S3) vardır.

http://framework.zend.com

require_once 'Zend/Service/Amazon/S3.php';
$s3 = new Zend_Service_Amazon_S3($my_aws_key, $my_aws_secret_key);
$s3->createBucket("my-own-bucket");
$s3->putObject("my-own-bucket/myobject", $file);