Visual Studio 2008を起動して、新しいC#Windowsコンソールアプリケーションを作成します。
S3 WSDLをサービス参照として追加します。ソリューションエクスプローラで、[参照設定]を右クリックし、[サービス参照の追加]を選択します。アドレスボックスにS3 WSDLアドレス:http://s3.amazonaws.com/doc/2006-03-01/AmazonS3.wsdlを入力します。 [移動]をクリックします。 [AmazonS3]が[サービス]ボックスに表示されます。名前空間を入力します。私はAmazon.S3に入った。 [OK]をクリックします。
変更Program.csのは、次のようなものを探すため:
using System;
using System.Globalization;
using System.Text;
using System.Security.Cryptography;
using ConsoleApplication1.Amazon.S3;
namespace ConsoleApplication1 {
class Program {
private const string accessKeyId = "YOURACCESSKEYIDHERE0";
private const string secretAccessKey = "YOURSECRETACCESSKEYHEREANDYESITSTHATLONG";
public static DateTime LocalNow() {
DateTime now = DateTime.Now;
return new DateTime(now.Year, now.Month, now.Day, now.Hour, now.Minute, now.Second, now.Millisecond, DateTimeKind.Local);
}
public static string SignRequest(string secret, string operation, DateTime timestamp) {
HMACSHA1 hmac = new HMACSHA1(Encoding.UTF8.GetBytes(secret));
string isoTimeStamp = timestamp.ToUniversalTime().ToString("yyyy-MM-ddTHH:mm:ss.fffZ", CultureInfo.InvariantCulture);
string signMe = "AmazonS3" + operation + isoTimeStamp;
string signature = Convert.ToBase64String(hmac.ComputeHash(Encoding.UTF8.GetBytes(signMe)));
return signature;
}
static void Main(string[] args) {
DateTime now = LocalNow();
AmazonS3Client client = new AmazonS3Client();
var result = client.ListAllMyBuckets(
accessKeyId,
now,
SignRequest(secretAccessKey, "ListAllMyBuckets", now));
foreach (var bucket in result.Buckets) {
Console.WriteLine(bucket.Name);
}
}
}
}
あなたは今、適切なスポットでのアクセスキーIDとシークレットアクセスキーを挿入して、プログラムを実行すると、 S3バケツのリストを取得する必要があります。
AmazonS3Clientクラスには、インスタンスメソッドとして利用可能なすべてのSOAP操作があります。
Amazon Webサイトには、古い(VS2005 + WSE)C#/ SOAPサンプルがhttp://developer.amazonwebservices.com/connect/entry.jspa?externalID=129&categoryID=47に格納されています。
EDIT:http://flyingpies.wordpress.com/2009/08/04/the-shortest-ever-s3-csoapwcf-client/でビジュアルスタジオソリューションを投稿しました。
なぜSOAPが必要ですか? S3のREST APIは非常に簡単で、SOAPにはいくつかの機能が欠けていると思います... – bdonlan
私は同意します。 SOAPは最後の手段でなければなりません。 –
SOAPを利用する小さなアプリケーションを構築する。同等の作業ソリューションが必要です。 – Nick