2011-08-15 16 views
1

jQueryとAmazons S3 APIをREST経由で使用して、いくつかのことを試してみたいと思っています。私の重要な問題は、このアプローチがリモートで正しく機能するかどうかを知るためにRESTに精通していない(または私が知っていると思っているだけでなく)ことでもありません。私は例のいくつかの楽しい時間を無限に探そうとしましたが、無駄になってしまいました。私が知らない間違ったことを探していたかもしれませんが、最後の溝の努力として私は新しいお気に入りの場所を打ち明けました。jQueryとRESTを使用してAmazon S3バケットを作成する

私がする必要があるのは送信です。バケットを作成するリクエストをAPIに送ります。 S3のAPIドキュメントに基づいて、私はコンセプトが上で完了していないですが、私はちょうどそれを始めていて、アプローチのこの考え方も仕事に行っていた場合、私は疑問を始めた...そして

var AWSAccessKeyId = ""; 
var AWSSecretAccessKey = ""; 
var AWSDomain = ".s3.amazonaws.com"; 

function createNewBucket(bucketName) 
{ 
    var bucketString = 'HTTP/1.1\n'; 
    bucketString += bucketName + AWSDomain + '\n'; 
    bucketString += 'Content-Length: 0 \n'; 
    bucketString += 'Date: Wed, 01 Mar 2009 12:00:00 GMT \n'; 
    bucketString += 'Authorization: AWS ' + sha1_string; 

    $.ajax({ 
     url: bucketName + AWSDomain, 
     type: 'PUT', 
     data: bucketString, 
     success: function(data) 
     { 

     }, 
     error: '' 
    }); 
} 

を思い付い上記の方法や、ここで提供された手段を用いて作業する場合は、それが成功したかどうかを知るための対応をどうすればよいでしょうか?私はこの一片を釘付けにすることができるかどうかを知っているので、私の問題の残りの部分は、大部分を処理することができます。最初のこん棒にちょうど取り組んで、私が正しい方法でそれについて行くかどうかを考え出します。また、jqueryのようなlibの助けを借りても、しなくても、私はこれを純粋にjavascriptスタイルにすることを任されていることに言及する価値があります。このコンセプトでは、PHPなどは使用できません。だから、誰かが私に骨を投げることができれば、私は大いに感謝するだろう。

実際にS3アカウントを持たずに実際にこのようなものをテストする手段があれば誰でも知っているでしょうか?テストだけのためにアカウントの代金を支払う余裕がないその他の理由。

答えて

3

まず、私はあなたがWebサービスクライアント側を消費することに全く新しいという気持ちを得ています。 何か簡単なものから始めておくのが一番です。

文字列を返すリソースがある場合... test.html - > "Hello World!" そして、このWebサービスのためのURLは、some-realy-long-id.s3.amazonaws.com その後、我々は次のことを持っているされています

$.ajax({ 
    url:'some-realy-long-id.s3.amazonaws.com/test.html', 
    type: 'PUT', 
    data: { 
     'myKey':'myValue' 
    }, 
    success: function(data) { 

     //alert dialog containing "Hello World!" 
     alert(data); 
    }, 
    error: '' 
}); 

ブラウザからの要求が続くことを覚えておく必要があります同じオリジンポリシーなので、JSOPなどのクロスドメインハッキングを使用する予定がない限り、問題が発生します。

p.s.別の小さなアドバイスは、セミコロンの挿入(オブジェクトリテラルを返すとあなたを噛んでしまう)を実行するので、Javascriptで右中カッコを使用することです。

ああ、古いブラウザの多くは、「PUT」をサポートしていないため、考慮する必要があります。

+0

私は、私の小さな例では "bucketString"の使用のような瞬間にデータを送信しています。また、私はあなたの例では、 "データ:"を2回持っていることに気付きます。 – chris

+0

ごめんなさい、私は更新します。 – martin

+1

あなたはJavascriptを初めて使用しているようですので、私は** douglas crockford **のコンテンツを読んで聞くことをお勧めします。私はJavascriptの基本(および性質)を啓発します。真剣にtho。 – martin

関連する問題