MISAO で HTTPS 通信

CodePlex にある MISAO というツールを使うと、
ニコニコ動画のコメントや Twitter のタイムラインをニコニコ動画風にデスクトップに表示させることができます。
 
このツールはもともと Twitter に HTTP で通信しますが、HTTPS で通信させるには次のような変更が必要です。
  • 接続先の URL を HTTP から HTTPS に変更する
  • 信頼されないセキュリティ証明書に対する確認を無視する
 
これらを簡易的に実装するには、
AddIn.RealtimeTweet プロジェクトの TwitterClient.vb にある CreateRequest メソッドの先頭部分を次のように変更します。
(今回は VB です。)
 
TwitterClient.vb

ServicePointManager.ServerCertificateValidationCallback = Function(o, cer, c, e) True
Dim request = DirectCast(WebRequest.Create("https://stream.twitter.com/1/statuses/filter.json"), HttpWebRequest)


 
ServicePointManager.ServerCertificateValidationCallback プロパティに設定したデリゲートが True を返すことにより、
セキュリティ証明書を承認して接続を続行させることができます。
 
バージョン情報
.NET Framework 4
MISAO 5.2
 
参照
広告
カテゴリー: .NET Framework, ツール. タグ: , . Leave a Comment »

Windows Azure ストレージへのファイルのアップロード・ダウンロード

Windows Azure ストレージ サービスには Blob、Table、Queue とありますが、
いきなりすべてを理解するのは初心者にとっては難しいと思うので、
ここでは入門として、Windows Azure ストレージを単にファイル置き場として利用する方法を紹介します。
 
ファイル置き場として利用するには、Blob (の中の Block Blob) を利用するのが一般的には最適です。
.NET のコードから Windows Azure ストレージにアクセスする方法としては、
Storage Client API または REST API を利用する方法があります。
REST API でも可能ですが、Storage Client API は REST によるアクセスをラップしたライブラリであり、
.NET Framework を利用できる環境では Storage Client API を利用したほうが簡単です。
 
今回は Storage Client API を利用して Blob にアクセスします。
Microsoft.WindowsAzure.StorageClient.dll への参照が必要です。
 
■ ファイルのアップロード
ファイルのパスを指定してファイルをアップロードするには、CloudBlob.UploadFile メソッドを利用します。

private const string AccountName = "account1";
private const string AccessKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"; // BASE64 形式
private const string FilePath = @"C:\Image1.png";

static void Main()
{
    var accountAndKey = new StorageCredentialsAccountAndKey(AccountName, AccessKey);
    var account = new CloudStorageAccount(accountAndKey, true); // HTTPS を利用する場合は true

    CloudBlobClient client = account.CreateCloudBlobClient();

    CloudBlobContainer container = client.GetContainerReference("container1");
    container.CreateIfNotExist();

    CloudBlob blob = container.GetBlobReference(Path.GetFileName(FilePath));

    blob.UploadFile(FilePath);
}


 
注意点
(1) 既定では匿名アクセス不可のコンテナーが作成されます。
(2) 明示的に CloudBlockBlob クラスを使用しなくても、この場合の実体は Block Blob になります。
(3) どの種類のファイルであっても、Blob の Content-Type には既定で application/octet-stream が設定されます。
 
■ ファイルのダウンロード
上記のコードの最後の行を
blob.DownloadToFile(FilePath);
に変更するだけで、ファイルをダウンロードできます。
 
バージョン情報
.NET Framework 4
Windows Azure SDK 1.3
 
参照
学習
 
SDK
 
ストレージ管理ツール
カテゴリー: クラウド. タグ: . Leave a Comment »