2012-06-18 4 views
0

SQS를 사용하여 S3에 업로드하면 프로세스의 내결함성이 향상됩니까?

그렇다면 queue을 생성하고 S3에 업로드하는 것과 결합하여 구문에 어려움을 겪고 있습니다.
논리가 올바르지 않은 경우 SQS을 사용하여 S3에 업로드하는 시스템을 어떻게 설정합니까?SQS - PHP 구문을 사용하여 S3에 AWS 업로드

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 
    } 
} 
+0

왜 부정 투표입니까? –

+0

통합하고자하는 것은 무엇입니까? SQS는 메시징 용이고 S3는 객체 저장 용입니다. SQS를 사용하여 S3에 대한 실제 업로드의 내결함성을 향상시킬 수 없습니다. 하지만 아마도 당신의 질문을 놓치고 있습니까? – oens

+0

둘째, 코드 스 니펫에 실제 AWS 자격 증명이 게시되지 않았기를 바랍니다. 그렇다면 당신은 그들을 취소해야합니다. – oens

답변

4

요청하는 내결함성을 정확히 이해하지 못합니다. 그러나 S3 및 SQS를 스케일링에 사용하는 측면에서 아마존 AWS 웹 사이트에는 SQS와 EC2를 함께 사용하여 인프라를 확장 및 축소하는 방법에 대한 훌륭한 보고서가 있습니다. 물론 S3에 업로드하고 SQS를 사용하여 응용 프로그램에 무언가를 처리하도록 지시하십시오. EC2를 사용하고 있는지 또는 관심이 있는지 여부는 언급하지 않았습니다. http://aws.amazon.com/articles/1464

그렇지 않으면 SQS는 그 사이 서버에서 S3에, 오히려 더 신청 메시징 아니므로 당신의 논리가 혼동 될 수 같은 소리 : 여기

기사입니다.

+0

im은 다이어그램에서 개념을 이해하고 실제 코드를 작성하는 데 어려움이 있습니다. –

1

나는이 주제에 대한 OP의 혼란을 이해했다고 생각합니다.

그림에 표시된 것처럼 SQS가 업로드를 처리하고있는 것처럼 보입니다.하지만 실제로는 1 또는 100 장의 사진을 업로드하면 S3에 직접 추가 된 다음 SQS를 사용하여 SQS를 사용하여 "작업"을 만듭니다. EC2 "Processing Serces"는 SQS 메시지에 이름이 지정된 S3 스토리지에서 실제 그림을 가져 와서 가져옵니다.

이 질문을 잃어버린 미래의 사용자에게 도움이되기를 바랍니다.

관련 문제