檔案或目錄關鍵字查詢

  • 伺服器: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 表示星號 - 即服務顯示之星號標記