ダウンロード サンプルファイル (7.5 MB)
BLOB一覧の取得
ファイルのアップロードが完了すると、BLOB一覧画面(http://localhost/list)にリダイレクトされます。リスト11とリスト12は、BLOB一覧画面の処理です。
// BLOB一覧
app.get('/list', routes.listblobs);
exports.listblobs = function(req, res) {
//(1)BLOBの一覧取得
blob.client.listBlobs(BLOB.CONTAINER, function(err, blobs) {
res.render('list.ejs', {
title : 'BLOB一覧',
blobs : blobs});
});
};
(1)のlistBlobsメソッドは指定したコンテナは配下のBLOB一覧を取得します。BLOBの一覧は第2引数のblobs変数に配列として代入されるので、テンプレート側で一覧を表示しています(リスト13)。
<% for (var i = 0; i < blobs.length; i++) { %>
<tr>
<td><%= i+1 %></td>
<td><a href="<%= blobs[i].url %>"><%= blobs[i].name %></a></td>
<td><form action="info/<%= blobs[i].name %>" method="get">
<input type="submit" value="情報"></form></td>
<td><form action="delete/<%= blobs[i].name %>" method="post">
<input type="submit" value="削除"></form></td>
</tr>
<% } %>
blobs変数blobsが配列として渡されるので、アップロードしたBLOBへのURLと、BLOB名を表示しています。
BLOBの削除
一覧画面の[削除]ボタンを押すと、http://localhost/delete/BLOB名でPOST処理が行われます(リスト14、リスト15)。
// BLOBの削除
app.post('/delete/:id', routes.deleteblob);
exports.deleteblob = function(req, res) {
var blobName = req.params.id;
// BLOBの削除
blob.client.deleteBlob(BLOB.CONTAINER, blobName, function(err) {
res.redirect('/list');
});
};
app.postの第2引数に指定された、「:id」はプレースホルダとして利用されreq.params.idに紐を付けられます。その情報を元に、指定されたBLOBをdeleteBlobメソッドで削除しています。
BLOBプロパティ情報の取得
一覧画面の[情報]ボタンを押すと、http://localhost/info/BLOB名でGET処理が行われます(リスト16、リスト17)。
// BLOBのプロパティ
app.get('/info/:id', routes.information);
exports.information = function(req, res) {
var blobName = req.params.id;
blob.client.getBlobProperties(BLOB.CONTAINER, blobName, function(err, blob, response) {
res.write(util.inspect(blob));
res.end();
});
};
削除処理と同様にURLに指定されたBLOB名を元にgetBlobPropertiesメソッドでBLOBのプロパティ情報を取得しています。図2では、メタデータとして設定した「onwer : 投稿者」が確認できるでしょう。
現在のところAzure SDK for Node.jsのAPIリファレンスは未整備です。したがってAPIの詳細を確認するには、ソースを参照するのが一番確実です。
まとめ
少し駆け足ではありましたが、ExpressとAzureストレージの利用方法について理解できたでしょうか。今回の例のようにすべてをNodeで行う必要は無いため、適材適所で組み合わせることによってAzureの利用方法が広がっていくと考えています。
この記事は参考になりましたか?
既に会員の方はを行ってください。
- Windows Azure新機能チュートリアル連載記事一覧
- この記事の著者
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
WINGSプロジェクト statemachine(statemachine)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
