okuyama 画像サーバ概要及び API 仕様書 Version 1.0.0 株式会社 神戸デジタル・ラボ 変更履歴 Version 1.0.0 履歴 新規作成 日付 2011/11/25 担当 岩瀬 高博 1. 画像サーバ概要 画像サーバは分散 KVS である okuayam をストレージとして利用し、画像コンテンツ を冗長化された環境で高速、安全に取り扱うためのソフトウェアです。 以下に画像サーバの構成図に示します。 」 ・WebAPI サーバ群 外部とのアクセス用の API を提供し全ての操作はこの WebAPI サーバ群を介して 行います。API は Restful な API で提供されます。 保存したコンテンツは全て URL 指定にて取り出す(通常の画像等の取得のよう に)ことが可能です。 ・okuyama サーバ群 okuyama を利用したストレージ領域 2. 機能概要 画像サーバはあらかじめドメインを取得し(ローカルネットワークのみの場合は HOSTS 等でも可能)ドメインに画像サーバの IP アドレスを紐付けることでドメイン 単位で領域が独立する VirtualHost と似たような仕組みで稼働します。1 つの画像 サーバ(1 つのグローバル IP)で複数のドメイン配下の画像を管理することが可能 です。 またストレージの層は API 経由にて一般的なファイルシステムを扱うかのうよう な操作を実現します。 ※画像サーバは画像データ以外のデータも扱うことができます。取り扱うことが可 能なデータは拡張子付きのデータに限定され、扱うことが可能な拡張子は本資料の 最後の拡張子一覧に記載しています。 3. 操作 API 管理者用 API ※管理 API は直接画像サーバの IP を指定して実行します。 ※管理 API は全て管理者用の authkey が必要になります。 管理者用の authkey は画像サーバ構築時に決定します。 ※管理者用 API の説明では画像サーバの IP アドレスを”画像 SVIP”と表記します 1. ドメイン名登録:/mt/mainteadduser ドメイン名およびユーザ情報をシステムに登録し、画像サーバを利用可能状態 にします。 (呼び出し例) http://画像 SVIP/mt/mainteadduser? domainname=example.com &domainid=101& customername=KDL&userauthkey=keyXXX&publicaccess=true&authkey=authZZZ (戻り値) “Success”もしくはエラーメッセージ パラメータ説明) ・domainname:登録するドメイン名 ・domainid:ドメイン名を管理するユニークな ID(3 桁の整数) ・customername=ユーザ名(半角英数) ・userauthkey:ドメイン単位での認証キー ・publicaccess:コンテンツに対する外部アクセスの可否 ・authkey:管理 API 用 authkey 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 2. ユーザ情報一覧:/mt/mainteuserlist 現在利用中のドメインの情報一覧 (呼び出し例) http://画像 SVIP/mt/mainteuserlist?authkey=authZZZ (戻り値) domainname= example.com,domainid=101,customername=KDL,usesize=8192 ----domainname= example2.org,domainid=102,customername=KDL2,usesize=1024 パラメータ説明) ・authkey:管理 API 用 authkey 戻り値説明) ドメイン単位の情報 ・domainname:ドメイン名 ・domainid:ドメイン ID ・customername:ユーザ名 ・usesize:現在の保存容量(単位はバイト) ※複数ユーザが存在する場合は、” ----- “で区切られて出力される 3. ユーザ削除:/mt/maintedeluser ユーザの削除を行う (呼び出し例) http://画像 SVIP/mt/maintedeluser?domainname=example.com&domainid=101& authkey=authZZZ (戻り値) Success RemoveUser[example.com] パラメータ説明) ・domainname:削除するドメイン名 ・domainid:削除するドメイン ID ・authkey:管理 API 用 authkey 戻り値説明) ・成功の場合は”Success”の文字列と削除したドメイン名。 失敗の場合はエラーメッセージ 一般用 API 4. ファイル Upload:/mt/fput 画像データを Upload する ※POST での Upload のみサポート (呼び出し例)※本例は curl コマンドを使用 ※ローカルの/var/tmp/sample.png を http://example.com/base/sample.png にアップロ ード $ curl -F "file=@/var/tmp/sample.png" -F "fullname=/base/sample.png" \ http://example.com/mt/fput?authkey=keyXXX (戻り値) Success ※ここで Upload されたファイルは以下の URL でアクセス可能 http://example.com/base/sample.png パラメータ説明) ・file:アップロードファイル ・fullname:ファイルアップロード先パス ・http://example.com/mt/fput?authkey=keyXXX:画像サーバの API の URL authkey に”ドメイン単位での認証キー”の指定が必要 ※上記以外に以下の HTTP のヘッダ情報を設定することが可能(全て省略可能) ・contenttype:Content-Type を指定 ※対応タイプは可能な限りの標準 Content-Type ・contentlanguage:Content-Language を指定 ・etag:ETag を指定 ※デフォルトはアップロードされたデータの MD5 値 ・pragma:Pragma 要素を指定 ・expires:Expire 指定(RFC1123 準拠例: Wed, 28 Sep 2011 15:16:35 GMT ) ・lastmodified:Last-Modified 指定(RFC1123 準拠)※デフォルトは現在時間 ・cachecontrol:Cache-Control を指定 ※デフォルト表記がなくパラメータの指定がないヘッダ情報は何も返しません。 戻り値説明) ・成功時は”Success”の文字列。失敗の場合はエラーメッセージ 5. ファイルの削除:/mt/fdel 画像データを削除する (呼び出し例) http://example.com/mt/fdel?filepath=/base/sample.png&authkey=keyXXX (戻り値) Success パラメータ説明) ・filepath:削除したいファイルの画像サーバ上でのパス ・authkey:ドメイン単位での認証キー 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 6. ファイルダウンロード:/mt/fget 画像データをバイナリデータとして取得する (呼び出し例) http://example.com/mt/fget?filepath=/base/sample.png&authkey=keyXXX (戻り値) 存在する場合はファイルデータ (MIME タイプは"application/octet-stream"で返されます) ※存在しない場合は HTTP のステータスコード 404 パラメータ説明) ・filepath:取得したいファイルの画像サーバ上でのパス ・authkey:ドメイン単位での認証キー 戻り値説明) ・ファイルが存在する場合は画像データが返却される その際 MIME タイプは全て"application/octet-stream"で固定される ※存在しない場合は HTTP ステータスコード 404 が応答される 7. ファイル情報取得:/mt/fattr 画像データの属性情報を取得する (呼び出し例) http://example.com/mt/fattr?filepath=/base/sample.png&authkey=keyXXX (戻り値) fullname = /base/sample.png datasize = 1024 createdate = Fri Sep 30 15:53:50 JST 2011 Content-Type = Last-Modified = Fri, 30 Sep 2011 06:53:50 GMT Content-Language = ETag = 803a6d95f58654e76554a08ef4bb0873 Cache-control = Pragma = Expires = ※存在しない場合は HTTP のステータスコード 404 パラメータ説明) ・filepath:情報を取得したいファイルの画像サーバ上でのパス ・authkey:ドメイン単位での認証キー 戻り値説明) ・fullname:ファイルの画像サーバ上でのパス ・datasize:ファイルサイズ ・createdate:ファイルを作成した日時 ・Content-Type:ファイルの Content-Type ・Last-Modified:ファイルの Last-Modified ・Content-Language:ファイルの Content-Language ・ETag :ファイルの ETag ・Cache-control:ファイルの ・Pragma:ファイルの Cache-control Pragma ・Expires:ファイルの Expires ※存在しない場合は HTTP ステータスコード 404 が応答される 8. ディレクトリ一覧の表示:/mt/lsdir 画像サーバ上のディレクトリ一覧を表示する (呼び出し例) http://example.com/mt/lsdir?authkey=keyXXX (戻り値) /base /base/dir0 /base/dir1 /base/dir1/pic1 /users /users/pic1 パラメータ説明) ・authkey:ドメイン単位での認証キー 戻り値説明) ・ディレクトリの一覧を LF 改行で返却 9. ディレクトリ内容の表示:/mt/flist 画像サーバ上のディレクトリ内容のファイル一覧を表示する (呼び出し例) http://example.com/mt/flist?dirpath=/base&authkey=keyXXX (戻り値) Success Count=3 /base/sample1.jpg /base/sample2.png /base/sample3.gif パラメータ説明) ・dirpath:一覧を表示したいディレクトリパス ・authkey:ドメイン単位での認証キー 戻り値説明) ・Success:成功文字列 ・Count:ディレクトリ内のファイル数 ・以下ファイル名の一覧 改行は LF 10. ディレクトリの作成:/mt/mkdir 画像サーバ上にディレクトリを作成する (呼び出し例) http://example.com/mt/mkdir?dirpath=/base&disr=true&authkey=keyXXX ※/base ディレクトリを作成 ※http://example.com/base としてアクセス可能なディレクトリ (戻り値) Success パラメータ説明) ・dirpath:作成するディレクトリパス ※指定したディレクトリの途中に存在しないディレクトリがある場合は 自動的に作成される ・disr:既にディレクトリが存在する場合にエラーとするかどうかの指定 true の場合エラーとならず処理が完了する。false の場合はエラーになる 省略も可能でありその場合は false となる ・authkey:ドメイン単位での認証キー 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 11. ディレクトリ削除:/mt/rmdir 画像サーバ上のディレクトリを削除する ディレクトリ内の画像も削除される (呼び出し例) http://example.com/mt/rmdir?dirpath=/base&authkey=keyXXX (戻り値) Success パラメータ説明) ・dirpath:削除するディレクトリパス ・authkey:ドメイン単位での認証キー 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 12. 保存容量の表示:/mt/df 画像サーバ上の全保存容量を表示する (呼び出し例) http://example.com/mt/df?authkey=keyXXX (戻り値) Use size = 879634 byte パラメータ説明) ・authkey:ドメイン単位での認証キー 戻り値説明) ・Use size:現在の容量をバイト単位で表示 13. ドメイン単位での認証キー変更:/mt/moduser 一般操作 API 利用時に指定するドメイン単位の認証キーを変更する (呼び出し例) http://example.com/mt/moduser?newauthkey=keyXXX&authkey=keyYYY (戻り値) Success パラメータ説明) ・newauthkey:変更後のドメイン単位での認証キー ・authkey:変更前のドメイン単位での認証キー 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 14. 画像データへの外部公開・非公開の設定:/mt/moduser 画像サーバに保存されているデータの通常 URL でのアクセス制限を変更する (呼び出し例) http://example.com/mt/moduser?publicaccess=true&authkey=keyXXX (戻り値) Success パラメータ説明) ・publicaccess:true を指定した場合は通常 URL でアクセス可能。false を指定した場合は 通常 URL ではアクセス不可となり/mt/fget コマンドのみ取得可能 ・authkey:ドメイン単位での認証キー 戻り値説明) ・成功の場合は”Success”の文字列。失敗の場合はエラーメッセージ 画像サーバ仕様 画像サーバには次のシステム制限が存在します。ただし一部変更可能なため、 変更が必要な場合は別途ご相談ください。 1. Upload 出来るファイルサイズの上限:54,526,976 byte ( 約 50 MB ) 2. ファイル名の最大長:2000byte(ディレクトリ名も含む) 3. ファイル名・デイレクトリ名に使用可能な文字列:英数字および「-」 「_」 「~」 「.」 4. 拡張子の無いファイルは Upload 出来ない 5. / 直下にファイルは Upload 出来ない 6. API でのアクセス時に authkey が間違っていてもエラーコード等の応答はない 7. 規定の拡張子以外のファイルを/mt/fput の”Content-Type”引数なしで Upload することは出来ない。 取り扱うことの出来る拡張子一覧(MIME 形式) ここで定義されている拡張子のファイルは自動的に画像サーバが適切な MIME ヘッダーを付与する abs exe midi ots qtif txt ai gif mif ott ras ulw aif gtar mov ogx rdf ustar aifc gz movie ogv rgb vxml aiff hdf mp1 oga rm xbm aim hqx mp2 ogg roff xht art htc mp3 spx rtf xhtml asf htm mp4 flac rtx xls asx html mpa anx sh xml au hqx mpe axa shar xpm avi ief mpeg axv smf xsl avx jad mpega xspf sit xslt bcpio jar mpg pbm snd xul bin java mpv2 pct src xwd bmp jnlp ms pdf sv4cpio vsd body jpe nc pgm sv4crc wav cdf jpeg oda pic svg wbmp cer jpg odb pict svgz wml class js odc pls swf wmlc cpio jsf odf png t wmls csh jspf odg pnm tar wmlscriptc css kar odi pnt tcl wmv dib latex odm ppm tex wrl doc m3u odp ppt texi wspolicy dtd mac ods pps texinfo Z dv man odt ps tif z dvi mathml otg psd tiff zip eps me oth qt tr etx mid otp qti tsv
© Copyright 2024 Paperzz