搜尋檔案或目錄名稱
檔案或目錄關鍵字查詢
伺服器:Search Server
目的:此 API 可供客戶端以關鍵字查詢用戶之檔案、目錄的名稱及相關資訊。
為確保網路安全性,所有 API 採 HTTPS 傳輸,而且客戶端須向 ServiceGateway 傳送 Token 以進行驗證。而 Token 的傳遞是以 URL Rewriting 的方式附加於 API 的路徑之後。 以 /fulltext/sqlquery/ 為例,客戶端向 Search Server 傳遞的 URL 為:http://{ Search server IP }/fulltext/sqlquery/{ token }
此 API 務必指定參數 kind,以決定搜尋目標類型為目錄或是檔案。當參數 kind 為 1,搜尋目標類型為目錄(Folder);當參數 kind 為 2,搜尋目標類型為檔案(File)。
參數 keyword 與 markid 不得同時使用,否則系統會回傳狀態碼 3。
/fulltext/sqlquery/
Input
<!--?xml version="1.0" encoding="utf-8" ?-->
<sqlquery>
<userid>{ User ID }</userid> <!-- keyword 與 markid 二者只能擇一使用 -->
<keyword>{ 查詢檔名/目錄名關鍵字;為空時回傳所有}</keyword>
<markid>{ 要查詢的標示代碼(Mark ID)(請參閱註解) }</markid>
<kind>[ 1 | 2 ]</kind> <!-- 搜尋目標類型。1:目錄 | 2:檔案 -->
<ancestorid>{ 選擇性欄位,只可填一個 Folder ID 指定要搜尋該目錄下及其所有子目錄的檔案 }</ancestorid>
<pagesize>{ 指定回傳的一頁多少筆,預設值為 10 }</pagesize>
<offset>{ 從第幾筆開始回傳,0 表示第一筆記錄,分頁時用 }</offset>
<ext>{ 副檔名1 副檔名2 副檔名3…。各個副檔名之間以空白分隔,若客戶端不指定副檔名此欄可為空白 }</ext>
</sqlquery>
Output
<!--?xml version="1.0" encoding="utf-8" ?-->
<sqlquery>
<status>{ Status Code }</status>
<total>{ 符合搜尋條件的記錄筆數 }</total> <!-- entry可重覆多次 -->
<entry>
<id>{ File ID 或 Folder ID }</id>
<parent>{ Parent Folder ID }</parent>
<rawentryname>{ 檔案或目錄名稱 }</rawentryname>
<kind>[ 1 | 2 ] </kind> <!-- 搜尋目標類型。1:目錄 | 2:檔案 -->
<isinfected>[ 0 | 1 ]</isinfected> <!-- 0:未感染病毒 | 1:受病毒感染。當 kind 參數為 2(表示為檔案) 此欄才有值。否則為空 -->
<time>{ 格式為yyyyMMddHHmmss }</time>
<ispublic>[ 0 | 1 ]</ispublic> <!-- 是否已分享。0:不公開 | 1:公開-->
<isorigdeleted>[ 0 | 1 ]</isorigdeleted> <!-- 是否已被刪除。0:未刪除 | 1:已刪除 -->
<marks>{ 附屬於此記錄的標示代碼(Mark ID)(請參閱註解),若有多個 MarkId 則以空白分隔 }</marks>
<attribute>{ Data(請參閱屬性的註解) }</attribute>
<size>{ 若類型為檔案,即為檔案大小;若為目錄,即為該目錄下所有檔案的大小總合(包括子目錄) }</size>
<lastchangetime>{ 若類型為檔案,則回傳最後更新時間,否則不回傳 }</lastchangetime>
</entry>
</sqlquery>
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
3 | Payload is not valid。 |
12 | XML Payload 錯誤(不符Well-formed)。 |
999 | General Error。 |
其他注意事項
屬性(Attribute)
用以儲存檔案/目錄描述資訊,亦可加入各 App 對檔案/目錄獨有的資訊,以 XML 型式儲存,至少須包含以下三個內容:
creationtime : 建立時間
lastaccesstime : 最後一次存取時間
lastwritetime : 最後一次變更時間
以上三個時間皆是從1970年至今的秒數。
Ex: 131305412313130541231313054123
※ 由於 Attribute 內容,除了上述三個時間外,可能因不同應用而加上不同的內容。於修改內容時,請僅針對三個時間,或是您自訂的內容做修改,其他的請務必保留。
合法的標示代碼(Mark ID)
開放客戶端對指定檔案/目錄做特殊的標示記號,用以標註該檔案/目標的特殊意義 (例如:重要或書籤)。
目前 OmniStor 開放標示代碼為:
1 表示星號 - 即服務顯示之星號標記
- 1 檔案或目錄關鍵字查詢
- 1.1 /fulltext/sqlquery/
- 1.1.1 Input
- 1.1.2 Output
- 1.1.3 回傳的狀態碼(Status Code)
- 1.1 /fulltext/sqlquery/
- 2 其他注意事項
- 2.1 屬性(Attribute)
- 2.2 合法的標示代碼(Mark ID)