DBのデーター取得
データーの全取得 | データーの差分取得(更新有り) |
データーの差分取得(更新無し) | データーの差分取得(時間間隔エラー) |
データーの全取得(時間間隔エラー) | PHPによるデータ取得のサンプル画像です。 ・サーバー上での動作サンプル ※なお、諸般の事情によりこのサンプルスクリプトは公開致しません。 http://details.kemuri-net.com/db_update/sample.php ・Window用サンプルTOOLです。 以下のライセンスに書き換えて使用してください。 sample.zip(Version:0.50a [2009/08/09 13:25 Update!!]) ▼ライセンス ライセンスID ライセンスPASS |
リクエストヘッダー (鯖 <- ユーザー) |
|
ヘッダー名 | 備考 |
X-MODE | ・データーの取得モード FULL:全取得 DIFF:差分取得 |
X-TYPE | ・取得データータイプ csv:CSV形式 dat:dat形式 |
X-COMP (2008/01/29 追加) |
・取得データー圧縮方式 deflate:deflate形式 gzip:gzip形式 ※未指定 or 指定がおかしいときは「deflate」になります。 |
X-Protocol: | V1:取得方式のバージョン1 V2:SHA1ハッシュを含む(登録されている物のみ) V3:SHA1とSHA512ハッシュを含む(登録されている物のみ) ※プロトコルバージョンを変更した場合データーを再取得してください。 |
X-LICENCE_ID | ・ライセンスID 利用登録時に取得したID(BASE64でエンコードする事) |
X-LICENCE_PASS | ・ライセンスパス 利用登録時に取得したパス(BASE64でエンコードする事) |
X-IDB-LUD-CHKSUM | ・差分更新用TIMESTAMPのチェックサム ここに格納する値は前回データー取得時に サーバーから送られた値をセットしてください。(BASE64でエンコードする事) |
X-IDB-LASTUPDATE | ・差分更新用のTIMESTAMP ここに格納する値は前回データー取得時に サーバーから送られた値をセットしてください。(BASE64でエンコードする事) |
Sample | GET /db_update/update.php HTTP/1.0 Accept: */* Accept-Ranges: bytes User-Agent: IDB_DBUPDATE_V1 Host: details.kemuri-net.com #ここまでHTTPな基本ヘッダー #全取得の場合 X-LICENCE_ID: (ここにBASE64エンコードしたID) X-LICENCE_PASS: (ここにBASE64エンコードしたパス) X-MODE: FULL X-TYPE: dat X-COMP: gzip X-Protocol: V1 Connection: close #差分取得の場合 X-LICENCE_ID: (ここにBASE64エンコードしたID) X-LICENCE_PASS: (ここにBASE64エンコードしたパス) X-MODE: DIFF X-TYPE: dat X-Protocol: V1 X-IDB-LUD-CHKSUM: (ここにBASE64エンコードしたTIMESTAMPのチェックサム) X-IDB-LASTUPDATE: (ここにBASE64エンコードしたTIMESTAMP) Connection: close |
レスポンスヘッダー (鯖 -> ユーザー) |
|
ヘッダー名 | 備考 |
Content-Type: | ・MIME-Type application/x-compress ※解釈する必要はないです |
Content-Length | ・送信したデーターサイズ(byte) 取得したデーターサイズがこの値と同じでない場合は破棄 |
Content-MD5 | ・送信したデーターのMD5(BASE64でエンコードされています) 取得したデーターのMD5がこの値と同じでない場合は破棄 |
X-Protocol | 取得方式のバージョン(IDBUDP_V1しか存在せず) |
X-IDB-LUD-CHKSUM | ・差分更新用TIMESTAMPのチェックサム (BASE64でエンコードされています) |
X-IDB-LASTUPDATE | ・差分更新用のTIMESTAMP (BASE64でエンコードされています) |
X-DCF | ・圧縮の有無 none:無圧縮 deflate:deflate形式で圧縮されています。 gzip:gzip形式で圧縮されています。 ※2008/01/29 gzip追加 |
X-DATASIZE | ・送信したデーターの圧縮前サイズ(byte) 圧縮データー伸張時のサイズです。 伸張データーサイズがこの値と同じでない場合は破棄 |
X-CDDMD5 | ・送信したデーターの圧縮前MD5(BASE64でエンコードされています) 圧縮データー伸張時のMD5。 伸張データーのMD5がこの値と同じでない場合は破棄 |
X-IHDB-UPDATE | ・差分取得時の更新有無 UPDATE:更新有り NO_UPDATE:更新無し |
X-ERRORCODE | ・このヘッダーがある場合は何らかのエラーが発生しています。 0:接続方法が仕様外 1:ライセンス認証中にエラーが発生しました。 2:全データー取得の時間間隔制限によるエラー 3:差分データー取得の時間間隔制限によるエラー 4:更新用データー更新中 5:ライセンス失効エラー 6:DB関連のエラー or メンテナンス中 7:プロトコルバージョンの不整合 8:未対応の処理方法 9:更新データーの破損(チェックサムとTIMESTAMPの不整合 or 古すぎるTIMESTAMP) ※9に関しては取得データー類を削除して全取得し直してください。 |
Sample | #全取得の場合 Content-Type: application/x-compress Content-Length: (圧縮データーのサイズ) Content-MD5: (圧縮データーのMD5) X-Protocol: IDBUDP_V1 X-IDB-LUD-CHKSUM: (ここにBASE64エンコードしたTIMESTAMPのチェックサム) X-IDB-LASTUPDATE: (ここにBASE64エンコードしたTIMESTAMP) X-DCF: deflate (送信されたデーターはdeflate圧縮されています。) X-CDDMD5: (圧縮データーを伸張したときのMD5) X-DATASIZE: (圧縮データーを伸張したときのサイズ) #差分取得の場合(データー圧縮無) Content-Type: text/plan Content-Length: (圧縮データーのサイズ) Content-MD5: (圧縮データーのMD5) X-IHDB-UPDATE: UPDATE X-Protocol: IDBUDP_V1 X-IDB-LUD-CHKSUM: (ここにBASE64エンコードしたTIMESTAMPのチェックサム) X-IDB-LASTUPDATE: (ここにBASE64エンコードしたTIMESTAMP) X-DCF: none (送信されたデーターは無圧縮です。) #差分取得の場合(データー圧縮有) Content-Type: application/x-compress Content-Length: (圧縮データーのサイズ) Content-MD5: (圧縮データーのMD5) X-IHDB-UPDATE: UPDATE X-DATASIZE: (圧縮データーを伸張したときのサイズ) X-Protocol: IDBUDP_V1 X-IDB-LUD-CHKSUM: (ここにBASE64エンコードしたTIMESTAMPのチェックサム) X-IDB-LASTUPDATE: (ここにBASE64エンコードしたTIMESTAMP) X-DCF: deflate (送信されたデーターはdeflate圧縮されています。) X-CDDMD5: (圧縮データーを伸張したときのMD5) |
データフォーマット | |
全取得時 | |
dat形式 | V1→ID<>DATE<>MD5<>SIZE<>詳細<>\r\n V2→ID<>DATE<>MD5<>SHA1<>SIZE<>詳細<>\r\n V3→ID<>DATE<>MD5<>SHA1<>SHA512<>SIZE<>詳細<>\r\n |
ID | ID No |
Date | 登録日時 |
MD5 | 画像ファイルのMD5 ハッシュ |
SHA1 | 画像ファイルのSHA1 ハッシュ |
SHA512 | 画像ファイルのSHA512 ハッシュ |
SIZE | 画像ファイルのサイズ |
詳細 | 詳細コメント(改行は全て<br>に置換) |
|
|
csv形式 | V1→"ID","DATE","MD5","SIZE","詳細","スレ名","レス番"\r\n; V2→"ID","DATE","MD5","SHA1","SIZE","詳細","スレ名","レス番"\r\n; V3→"ID","DATE","MD5","SHA1","SHA512","SIZE","詳細","スレ名","レス番"\r\n; |
ID/DATE/MD5/SHA1/SHA512/SIZE | dat形式と同じ |
詳細 | 改行そのまま。 CSVを読み込んで理解できる環境でないと使いづらいかも。 PHPで言えばfgetcsvとか? |
スレ番/レス番 | そのまんまです。 |
差分取得時 | |
dat形式(修正/追加分) | UP<>ID<>DATE<>MD5<>SIZE<>詳細<>\r\n UP<>が頭に付加されます。 IDが被る場合はデーター修正分、被らない場合は新規データー。 |
dat形式(削除分) | DEL<>ID<><><><><>\r\n DEL<>が頭に付加されます。 該当するIDが削除対象です。 |
|
|
csv形式(修正/追加分) | "UP","ID","DATE","MD5","SIZE","詳細","スレ名","レス番"\r\n; "UP",が頭に付加されます。 IDが被る場合はデーター修正分、被らない場合は新規データー。 |
csv形式(削除分) | "DEL","ID","","","","","",""\r\n; "DEL",が頭に付加されます。 該当するIDが削除対象です。 |