4

S3 に画像をアップロードする必要があるアプリに取り組んでいます。今、私はこのようにしています:

S3PutObjectRequest *por = [[S3PutObjectRequest alloc] initWithKey:nameOfThePicture inBucket:nameOfTheBucket];
    por.contentType = @"image/jpg";
    por.data        = imageData;

    // Put the image data into the specified s3 bucket and object.
    S3PutObjectResponse *putObjectResponse = [self.s3 putObject:por];
    por.delegate = self;

イメージを S3 に直接アップロードするのは遅すぎるため、CloudFront サービスを構成しました。ここで、CloudFront を介して S3 のオリジン バケットに画像をアップロードしたいと思います。それは可能ですか?はいの場合、どうすればできますか?

本当にありがとう、

ビクター

4

2 に答える 2

5

いいえ。CloudFront は一方向です。CloudFront を介して S3 からオブジェクトを取得できますが、CloudFront を介して S3 にオブジェクトをアップロードすることはできません。

于 2013-03-21T22:37:28.480 に答える
0

私のプロジェクトでも同じ要件がありました。私自身はすべてを理解できませんでしたが、見つけたリンクがあります。

http://raamdev.com/2008/using-curl-to-upload-files-via-post-to-amazon-s3/

PHP curl で同じことを真似てみたのですが、どういうわけか、画像ファイルではなくキーがアップロードされていることがわかりました。このコードはポインタを提供するかもしれません.誰かが以下のスクリプトの問題を理解できれば、私だけでなく、これを達成したい人にとって大きな助けになるでしょう.

$url = 'http://xxxxxxxxxxx.cloudfront.net/'; // cloudfront distribution url.

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST"); 

//curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, array("key"=>$_REQUEST['key'],"file"=>$_FILES['file']['tmp_name']));


//curl_setopt($ch, CURLOPT_POSTFIELDS, array("key"=>$_FILES['file']['tmp_name']));
//curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$result = curl_exec($ch);

if (false == $result) {
    echo "Error while loading page: ", curl_error($ch), "\n"; 
}
curl_close($ch);
var_dump($result);
于 2013-12-20T10:15:30.540 に答える