0

SQSを使用してS3にアップロードすると、プロセスのフォールトトレラントが向上しますか?

もしそうなら、私は構文に苦労していて、作成queueしてからS3にアップロードすることを組み合わせようとしています。ロジックが正しくない場合、にアップロードするために
使用するシステムをどのように設定しますか?SQSS3

if (!class_exists('S3'))require_once('S3.php');

// *these keys are random strings
$AWS_KEY = "6VVWTU4JDAAKHYB1C3ZN";
$AWS_SECRET_KEY = "GMSCUD8C0QA1QLV9Y3RP2IAKDIZSCHRGKEJSXZ4F";

//AWS access info
if (!defined('awsAccessKey')) define('awsAccessKey', $AWS_KEY);
if (!defined('awsSecretKey')) define('awsSecretKey', $AWS_SECRET_KEY);
//instantiate the class
$s3 = new S3(awsAccessKey, awsSecretKey);

//check whether a form was submitted
if(isset($_POST['Submit'])){

    //retreive post variables
    $fileName = $_FILES['theFile']['name'];
    $fileTempName = $_FILES['theFile']['tmp_name'];

    //create a new bucket
    $s3->putBucket("mybucket", S3::ACL_PUBLIC_READ);




    //add the queue
    $sqs = new AmazonSQS(array( "key" => $AWS_KEY, "secret" => $AWS_SECRET_KEY ));
    $response = $sqs->create_queue('test-topic-queue');
    $queue_url = (string) $response->body->CreateQueueResult->QueueUrl;
    $queue_arn = 'arn:aws:sqs:us-east-1:ENCQ8gqrAcXv:test-topic-queue';

    //$queue_url . ?Action=SendMessage&MessageBody=Your%20Message%20Text?&AWSAccessKeyId=AKIAIOSFODNN7EXAMPLE&Version=2011-10-01?&Expires=2008-02-10T12:00:00Z?&Signature=lBP67vCvGlDMBQ1do?fZxg8E8SUEXAMPLE&SignatureVersion=2&SignatureMethod=HmacSHA256


    // HOW DO I INCORPORATE SQS AND S3



    //move the file
    if ($s3->putObjectFile($fileTempName, 
                                "mybucket", 
                                "myFolder/" . $fileName, S3::ACL_PUBLIC_READ, 
                                array(), 
                                $_FILES['theFile']['type']) ) {
        //it works
    }else{
        // error
    }
}
4

2 に答える 2

4

私はあなたが要求しているフォールトトレランスを正確に理解していません。ただし、スケーリングにS3とSQSを使用することに関しては、Amazon AWS Webサイトに、SQSとEC2を一緒に使用してインフラストラクチャをスケールアップおよびスケールダウンすることについて説明している優れた論文があります。もちろん、S3へのアップロードやSQSの使用などのプロセスも含まれます。アプリケーションに何かを処理するように指示します。EC2を使用しているかどうか、またはこれに関心があるかどうかについては言及していません。

記事は次のとおりです:http://aws.amazon.com/articles/1464

そうしないと、SQSはサーバーからS3の中間ではなく、アプリケーションメッセージング用であるため、ロジックが混乱する可能性があるように思われます。

于 2012-06-27T02:18:33.973 に答える
1

私はこのトピックに関するOPの混乱を理解したと思います。

示されている図では、SQSがアップロードを処理しているように見えますが、実際にはそうではありません。1枚または100枚の写真をアップロードすると、それらはS3に直接追加され、SQSを使用して、EC2の「処理サービス」の1つである「タスク」が作成されます。 "はプルし、SQSメッセージで指定されているS3ストレージから実際の画像を取得します。

うまくいけば、これは、この質問が失われたと感じている将来のユーザーにいくつかの洞察を与えるでしょう。

于 2014-03-11T22:00:11.117 に答える