資料分享

OmniStor API

分享功能簡介

OmniStor 系統所提供的分享(Share) 功能有:一般分享和群組分享。

  1. 一般分享(Public Share):
    • 可將檔案/目錄分享給所有人,無論是否擁有 OmniStor 帳號皆可瀏覽下載。
  2. 群組分享(Group Share):
    • 設定協同合作資料夾
    • 用戶可呼叫 /fsentry/setadvancedsharecode/ API將自己的目錄指定分享給特定的 OmniStor 用戶,以便啟用協同合作資料夾功能。
      這群特定的 OmniStor 用戶屬於白名單白名單內的用戶可以新增子目錄、上傳檔案到該分享目錄,或是對該目錄下的子目錄/檔案進行新增、搬移、更名或刪除等動作;若非白名單用戶,則無任何權限。

      ※ 備份資料夾(請參閱註解)無法被設定為協同合作資料夾。
      ※ 群組分享功能目前僅支援設定目錄(Folder)為協同合作資料夾。

    • 存取協同合作資料夾
    • 客戶端可依照下述步驟取得協同合作資料夾的Folder ID:

      1. 收到雲端分享碼之後,可呼叫 ServicePortal 的 /sharecode/findservicegateway/ 用雲端分享碼查詢 ServiceGateway 的位址。
      2. 取得 ServiceGateway 位址後,可呼叫 ServiceGateway的/member/acquiretoken/ 以透過使用者帳號、密碼的驗證,來取得授權金鑰(Token),並查詢到各 Server 的位址(例如:InfoRelay 位址),以便進行其他 API 的操作。
      3. 得到 Token 和 InfoRelay 位址之後,可呼叫 /fsentry/getinfobysharecode/ 查詢雲端分享碼所代表的協同合作資料夾 Folder ID。

    • 使用協同合作資料夾
    • 如欲使用協同合作資料夾功能時,其操作之客戶端應用程式(Client Application) 必須在 HTTP Header 中提供 SID 及 ProgKey (必須採用 Authorization 的方式,Authorization Header 請參見 ServiceGateway 技術文件的 /member/acquiretoken/),當 SID 及 ProgKey 通過 OmniStor Server 的認證後,方能啟用協同合作資料夾功能。其功能如下:

      1. 協同合作資料夾與檔案/目錄操作相關之 InfoRelay API 列表:
      2. 以上 API 皆有一個選擇性輸入參數<isgroupaware>( /find/propfind/ 則是參數<isshared>),將輸入參數<isgroupaware>值(或是 /find/propfind/的<isshared>)設為1才會啟用協同合作資料夾功能;若不輸入該參數或值為0,則將不會啟用協同合作資料夾功能。

        ※ 範例:
        用戶 Anson 將目錄 AlienVideo 設為協同合作資料夾並指定分享給白名單成員為 Bush、Cella。當 Bush、Cella 呼叫 /file/rename/ API,並將參數<isgroupaware>設為 1 後可將 AlienVideo 目錄下的指定檔案更名;若 Bush、Cella 未指定<isgroupaware>值為 1,則此更名動作將失敗。

      3. 協同合作資料夾上傳檔案相關之 WebRelay API 列表:
      4. 亦需指定 SID/ProgKey/啟用協同合作資料夾的輸入參數,方可使用協同合作資料夾功能(詳情請參見 WebRelay 技術文件)。

    • 長分享碼與短分享碼
    • OmniStor 系統的雲端分享碼有「長分享碼」與「短分享碼」,兩者可透過呼叫 ServicePortal 的 API 進行轉換。
      OmniStor 系統為了強化資安措施,提供了長分享碼供客戶端使用,並且為了便利台灣在地化服務還提供了短分享碼可至全國 7-ELEVEN 超商 ibon 列印。
      呼叫 /fsentry/setadvancedsharecode/ API 可得到長分享碼,為了使用者在 ibon 手動輸入雲端分享碼方便起見,另有短分享碼與長分享碼互相轉換的 API:/sharecode/tocompactform/、/sharecode/tonormalform/

      ※ 短分享碼與長分享碼互相轉換的 API 詳情請參見 ServicePortal 技術文件。
      /sharecode/tocompactform/ :長分享碼轉換為短分享碼。
      /sharecode/tonormalform/ :短分享碼轉換為長分享碼。

    • 台灣ibon列印
    • OmniStor提供台灣在地化服務,只須攜帶短的雲端分享碼(Share Code) 便可至全國 7-ELEVEN 超商 ibon 列印(如下圖)。

      ※ ibon 列印功能目前僅支援「短分享碼」。
      ※ 「長分享碼」須呼叫 ServicePortal 的 /sharecode/tocompactform/ 轉換成「短分享碼」方能進行 ibon 列印。
      ※ 7-ELEVEN ibon 雲端列印相關詳請請參考 OmniStor 雲端列印

註解

系統資料夾 ID 列表

類別 名稱 Folder ID
system.{package}.home.root 我的收藏 0
system.backup.root 我的備份 -3
system.sync.root 同步中心 -5

※ 「我的收藏」資料夾:
{package} 是從 AcquireToken API 所回傳的 XML Payload 中取得,為 package 參數中的 display 參數值(請參閱文件「ServiceGateway Technical Spec」)。

分享檔案或目錄(/fsentry/setadvancedsharecode/)

伺服器:InfoRelay

目的:

  • 一般分享(Public Share):
    此 API 可將用戶的檔案/目錄設定為分享檔案或分享目錄,並且取得對應的雲端分享碼(Share Code 請參閱註解)。一般分享(Public Share) 分為公開被任何客戶端存取或者密碼保護兩種方式。
  • 群組分享(Group Share):
    此 API 亦可供用戶設定分享白名單,將自己的指定目錄分享給其他用戶。當其他用戶收到雲端分享碼後,其他用戶的客戶端應用程式或網站可呼叫 /fsentry/getinfobysharecode/ API 取得該雲端分享碼代表的 Folder ID,便可根據取得的 Folder ID 使用其它 Info Relay API 做後續的操作。

※ 群組分享功能目前僅支援設定目錄(Folder) 為協同合作資料夾。
※ 白名單及設定協同合作資料夾的詳細說明請參照本文件「InfoRelay 分享功能簡介」。
每次呼叫該 API 都會增加一個新的雲端分享碼,而舊的雲端分享碼仍保持有效。但是檔案/目錄的分享狀態(<password>、<validityduration>、<shareforuserid>、<folderquota>參數的效果)無論新舊分享碼皆採用最新一個雲端分享碼的設定

※ 範例:
有一分享目錄A,舊分享碼設定密碼為「abc123」;新分享碼設定密碼為「def456」。舊分享碼依舊可以存取到目錄 A,但存取所需的密碼已變更為「def456」。

※ 長分享碼:

  • OmniStor 系統的雲端分享碼有「長分享碼」與「短分享碼」兩種類型,此 API 取得的雲端分享碼為「長分享碼」類型。
  • 「長分享碼」須呼叫 ServicePortal 的 /sharecode/tocompactform/ 轉換成「短分享碼」方能進行 ibon 列印。

/fsentry/setadvancedsharecode/

Input


<!--?xml version="1.0" encoding="utf-8" ?-->
<setadvancedsharecode>
		<token>{ token }</token>
		<userid>{ User ID }</userid>
		<isfolder>[ 0 | 1 ]</isfolder><!-- 0:表示為 File ID | 1:表示為 Folder ID。若為 File ID,將不支援白名單功能。 -->
		<entryid>{ File ID | Folder ID }</entryid>
		<clearshare>[ 0 | 1 ]</clearshare><!-- 選擇性欄位,預設值為 0。若設為 1 表示刪除此檔案/目錄以及子目錄下所有的雲端分享碼,不再分享此 Entry。設定此參數時,系統會忽視 isfolder、entryid 之外的參數特性(Ex: <password>、 <isgroupaware>參數) -->
		<clearpassword>[ 0 | 1 ]</clearpassword><!-- 選擇性欄位,預設值為 0。若設為 1 表示移除存取此 Entry 時所需的密碼,可直接存取。設定此參數時,系統會忽視<password>參數 -->
		<clearvalidityduration>[ 0 | 1 ]</clearvalidityduration><!-- 選擇性欄位,預設值為 0。若設為 1 表示移除此分享碼的時間限制。設定此參數時,系統會忽視<validityduration>參數 -->
		<releasequotalimit>[ 0 | 1 ]</releasequotalimit><!-- 選擇性欄位,預設值為 0。若設為 1 表示移除此分享碼的使用空間限制。設定此參數時,系統會忽視<folderquota>參數 -->
		<password>{ 透過分享碼存取該檔案/目錄所須的密碼 }</password><!-- 選擇性欄位。預設為無此欄位,表示不須密碼 -->
		<validityduration>{ 雲端分享碼多久後失效 }</validityduration><!-- 選擇性欄位。單位:小時-->
		<isgroupaware>[ 0 | 1 ]</isgroupaware><!-- 選擇性欄位。0:不啟用協同合作資料夾功能 | 1:啟用協同合作資料夾功能 -->
		<!-- shareforuserid element可以重覆多次,為選擇性欄位 -->
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#1 }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#2 }</shareforuserid>
		<shareforuserid>{ …… }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#N }</shareforuserid>
		<folderquota>{ 設定協同合作資料夾被分享者可上傳檔案的空間上限 }</folderquota><!-- 選擇性欄位。單位:byte -->
</setadvancedsharecode>
								  

Output


<!--?xml version="1.0" encoding="utf-8" ?-->
<setadvancedsharecode>
		<status>{ Status Code }</status>
		<scrip>{ Scrip }</scrip>
		<sharecode>{ 雲端分享碼 }</sharecode>
		<ispasswordneeded>[ 0 | 1 ]</ispasswordneeded><!-- 0:不須密碼即可存取 | 1:須輸入密碼 -->
		<isgroupaware>[ 0 | 1 ] </isgroupaware><!-- 若為 1 表示支援群組編輯,反之,則不支援 -->
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#1 }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#2 }</shareforuserid>
		<shareforuserid>{ …… }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#N }</shareforuserid>
		<expiredtime>{ yyyy-MM-dd HH:mm:ss。若此欄為空表示未指定逾期時間 }</expiredtime><!-- 單位:小時-->
		<folderquota>{ 協同合作資料夾被分享者可上傳檔案的空間上限 }</folderquota><!-- 單位:byte -->
		<invaliduserid>{ 不是 OmniStor 帳號的白名單用戶 }</invaliduserid><!-- 可為多筆的。不屬於 OmniStor 帳號的用戶無法使用群組分享功能 -->
</setadvancedsharecode>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
218 要處理的目錄不存在或已刪除。
219 要處理的檔案不存在或已刪除。
225 參數值不在容許的定義域內。
999 General Error。

註解

分享碼(Share Code)

分享連結(URI)的顯示方式為「http://oeo.la/{Share Code}」。

用檔案、目錄 ID 查詢分享狀態(/fsentry/getadvancedsharecode/)

伺服器:InfoRelay

目的:此 API 可供客戶端輸入檔案/目錄的 ID 以取得檔案/目錄的雲端分享碼(Share Code) 及檔案/目錄的資訊( <ispasswordneeded>、<isgroupaware>、<shareforuserid>、<expiredtime>、<folderquota>)。

※ 此 API 取得的雲端分享碼為「長分享碼」類型。

/fsentry/getadvancedsharecode/

Input


<!--?xml version="1.0" encoding="utf-8" ?-->
<getadvancedsharecode>
		<token>{ token }</token>
		<userid>{ User ID }</userid>
		<isfolder>[ 0 | 1 ] </isfolder><!-- 0:表示為File ID | 1:表示為Folder ID -->
		<entryid>{ File ID | Folder ID }</entryid>
</getadvancedsharecode>
								  

Output


<!--?xml version="1.0" encoding="utf-8" ?-->
<getadvancedsharecode>
		<status>{ Status Code }</status>
		<scrip>{ Scrip }</scrip>
		<sharecode>{ 雲端分享碼 }</sharecode>
		<ispasswordneeded>[ 0 | 1 ]</ispasswordneeded><!-- 0:不須密碼即可存取 | 1:須輸入密碼 -->
		<isgroupaware>[ 0 | 1 ] </isgroupaware><!-- 若為 1 表示支援群組編輯,反之,則不支援 -->
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#1 }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#2 }</shareforuserid>
		<shareforuserid>{ …… }</shareforuserid>
		<shareforuserid>{ 協同合作資料夾被分享者 User ID#N }</shareforuserid>
		<expiredtime>{ yyyy-MM-dd HH:mm:ss。若此欄為空表示未指定逾期時間 }</expiredtime><!-- 單位:小時-->
		<folderquota>{ 協同合作資料夾被分享者可上傳檔案的空間上限 }</folderquota><!-- 單位:byte -->
</getadvancedsharecode>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
218 要處理的目錄不存在或已刪除。
219 要處理的檔案不存在或已刪除。
225 參數值不在容許的定義域內。
999 General Error。

用雲端分享碼查詢檔案、目錄的資料(/fsentry/getinfobysharecode/)

伺服器:InfoRelay

目的:此API可供客戶端用雲端分享碼(Share Code) 查詢所代表的檔案/目錄資料。可查詢的資料為:檔案/目錄的ID、檔案/目錄的型別(File 或是 Folder)。

※ 此API僅支援「長分享碼」。

/fsentry/getinfobysharecode/

Input


<!--?xml version="1.0" encoding="utf-8" ?-->
<getinfobysharecode>
		<token>{ token }</token>
		<userid>{ User ID }</userid>
		<sharecode>{ 雲端分享碼 }</sharecode>
</getinfobysharecode>
								  

Output


<!--?xml version="1.0" encoding="utf-8" ?-->
<getinfobysharecode>
		<status>{ Status Code }</status>
		<entryid>{ File ID | Folder ID }</entryid>
		<entrytype>[ 0 | 1 ] </entrytype><!-- 0:表示為File ID | 1:表示為Folder ID -->
</getinfobysharecode>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
218 要處理的目錄不存在或已刪除。
225 參數值不在容許的定義域內。
243 參數值不在容許的定義域內。
999 General Error。

列出自己分享給別人的協同合作資料夾(/groupawareentry/listsharingtoothers/)

伺服器:InfoRelay

目的:此 API 可供客戶端輸入 User ID 及 Token 以查詢列出該 User ID 分享給其他用戶的協同合作資料夾資訊(此資訊包括:Folder ID、目錄名稱……等)。

※ 群組分享功能目前僅支援設定目錄(Folder)為協同合作資料夾。

/groupawareentry/listsharingtoothers/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<listsharingtoothers>
	<token>{ token }</token>
	<userid>{ 用戶自己的User ID }</userid>
</listsharingtoothers>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<listsharingtoothers>
	<status>{ Status Code }</status>
	<entry> <!-- entry element 可以重覆多次 -->
		<entryid>{ Folder ID }</entryid>
		<isfolder>[ 1 ]</isfolder><!-- 1:表示 Entry 為 Folder -->
		<rawentryname>{ 目錄名稱 }</rawentryname>
	</entry>
</listsharingtoothers>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
218 要處理的目錄不存在或已刪除。
225 參數值不在容許的定義域內。
999 General Error。

列出別人分享給自己的協同合作資料夾(/groupawareentry/listsharingfromothers/)

伺服器:InfoRelay

目的:此 API 可供客戶端輸入 User ID 及 Token 以查詢列出其他用戶分享給該 User ID 的協同合作資料夾資訊(此資訊包括:Folder ID、目錄名稱……等)。

※ 群組分享功能目前僅支援設定目錄(Folder)為協同合作資料夾。

/groupawareentry/listsharingfromothers/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<listsharingfromothers>
	<token>{ token }</token>
	<userid>{ 用戶自己的User ID }</userid>
</listsharingfromothers>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<listsharingfromothers>
	<status>{ Status Code }</status>
	<entry> <!-- entry element 可以重覆多次 -->
		<userid>{ 提供協同合作資料夾的用戶 User ID }</userid>
		<entryid>{ Folder ID }</entryid>
		<isfolder>[ 1 ]</isfolder><!-- 1:表示Entry為Folder -->
		<rawentryname>{ 目錄名稱 }</rawentryname>
		<ispasswordaccess>[ 0 | 1 ]</ispasswordaccess><!-- 此欄表示是否需要密碼才可存取 entry。0:不需要密碼 | 1:需要密碼 -->
	</entry>
</listsharingfromothers>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
5 Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。)
218 要處理的目錄不存在或已刪除。
225 參數值不在容許的定義域內。
999 General Error。

拒絕別人分享給我的協同合作資料夾(/groupawareentry/rejectsharing/)

伺服器:InfoRelay

目的:此 API 可供客戶端指定協同合作資料夾的 Folder ID,以取消自己在該協同合作資料夾中的白名單身分。此 API 不會影響協同合作資料夾的資料。

例子:用戶 A 使用 /fsentry/setadvancedsharecode/ 指定協同合作資料夾分享給用戶 B、C、D,則白名單為 B、C、D。用戶 B 若不願看到 A 提供的協同合作資料夾,可以使用此 API 取消來自 A 的分享關係,而白名單將變更為 C、D。此 API 不會影響 A 指定的協同合作資料夾裡面的資料。

※ 群組分享功能目前僅支援設定目錄(Folder) 為協同合作資料夾。

/groupawareentry/rejectsharing/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<rejectsharing>
	<token>{ token }</token>
	<entryid>{ 別人分享給自己的協同合作資料夾 Folder ID }</entryid>
</rejectsharing>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<rejectsharing>
	<status>{ Status Code }</status>
</rejectsharing>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
218 要處理的目錄不存在或已刪除。
225 參數值不在容許的定義域內。
999 General Error。

中止分享檔案、目錄(/fsentry/deletesharecode/)

伺服器:InfoRelay

目的:將用戶先前設定為分享檔案或分享目錄的分享碼(Share Code 請參閱註解)刪除,不再對外分享指定的檔案或目錄。取得分享碼(Share Code) 相關的說明可參考 API:/fsentry/setadvancedsharecode/

/fsentry/deletesharecode/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<deletesharecode>
	<token>{ token }</token>
	<userid>{ User ID }</userid>
	<entrytype>[ 0 | 1 ]</entrytype><!-- 0:目錄 | 1:檔案 -->
	<entryid>{ File ID | Folder ID }</entryid><!-- 用戶分享的檔案或目錄 -->
	<password>{ 此欄位為使用者欲防止非授權用戶存取檔案或目錄的密碼。 }</password><!-- 選擇性欄位。該參數值須以轉小寫做 MD5 編碼(請參閱註解)後的字串來表示 -->
</deletesharecode>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<deletesharecode>
	<status>{ Status Code }</status>
	<scrip>{ scrip }</scrip>
</deletesharecode>
								  

回傳的狀態碼(Status Code)


0 Success。
999 General Error。

註解

分享碼(Share Code)

分享連結(URI) 的顯示方式為「http://oeo.la/{Share Code}」。

MD5編碼注意事項

若您的 MD5 編碼未經過十六進制轉換,請務必在 MD5 編碼過後,再以十六進位轉換。十六進位所使用的「a,b,c,d,e,f」字母須為小寫。

取得用戶分享的檔案目錄清單(/fsentry/getsharedentries/)

伺服器:InfoRelay

目的:客戶端可以使用此 API 取得用戶分享的檔案或目錄清單,並且可顯示於網頁或應用程式。

/fsentry/getsharedentries/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<getsharedentries>
	<userid>{ User ID }</userid>
	<token>{ token }</token>
	<kind>[ 0 | 1 | 2 ]</kind> <!-- 搜尋目標類型。0:檔案及目錄 | 1:目錄 | 2:檔案 -->
	<pagesize>{ 設定回傳的一頁有多少筆記錄,預設值為 10 }</pagesize>	
	<sortby>[ 0 | 1 ]</sortby> <!-- 0為CreatedTime | 1 為 EntryID -->
	<sortdirection>[ 0 | 1 ]</sortdirection> <!-- 0 為 ASC | 1為DESC -->
	<firstentrybound>{ 若 sortby為 0,則格式為時間式 yyyy-MM-dd HH:mm:ss:SSS;若 sortby 為 1,則格式為數值型式 ID number。搜尋結果不含此欄指定的值 }</firstentrybound> <!-- 選擇性欄位。第一次呼叫時不必指定此參數 -->
</getsharedentries>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<getsharedentries>
	<status>{ Status Code }</status>
	<lastentrybound>{ 本次搜尋結果的最後一筆 entry 的排序欄位內容。可做為下一次呼叫此 API 時的 firstentrybound 參數,藉此實現逐頁瀏覽。本欄位格式請參照輸入參數 firstentrybound }</lastentrybound>
	<!-- entry 可重覆多次 -->
	<entry>
		<id>{ File ID | Folder ID }</id>
		<parent>{ Parent Folder ID }</parent>
		<rawentryname>{ 檔案名稱 | 目錄名稱 }</rawentryname>
		<isfolder>[ 0 | 1 ]</isfolder><!-- 搜尋結果。0:檔案 | 1:目錄 -->
		<isbackup>[ 0 | 1 ]</isbackup><!-- 若為 1 表示是備份的檔案或目錄,否則為一般檔案或目錄 -->
		<sharingavailabletime>{ 格式為yyyy-MM-dd HH:mm:ss:SSS } </sharingavailabletime>
		<createdtime>{ 格式為yyyy-MM-dd HH:mm:ss }</createdtime>
		<lastchangetime>{ 資料型別為長整數,從1970/01/01 00:00:00 到現在為止的毫秒數 }</lastchangetime> <!-- 目錄無此參數值 -->
		<isorigdeleted>[ 0 | 1 ]</isorigdeleted><!-- 0:原始檔未刪除 | 1:原始檔已刪除 -->
		<marks>{ 附屬於此檔案的標示代碼(Mark ID 請參閱註解)。若有多個標示代碼,須以空白字元分隔;若是該檔案沒有任何標示代碼時,則此欄位不出現。 }</marks>
		<attribute>{ Data(請參閱註解) }</attribute>
		<isinfected>[ 0 | 1 ]</isinfected><!-- 此欄位用以判斷檔案是否感染病毒。0:表示未感染 | 1:表示已感染 -->
		<size>{ 檔案大小(File Size) }</size> <!-- 為目錄時此參數不出現-->
		<ispublic>[ 0 | 1 ]</ispublic><!-- 使用者是否已設定為分享目錄。0:意指PRIVATE | 1:意指 PUBLIC(已分享) -->
	</entry>
 </getsharedentries>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
3 Payload is not validate。
999 General Error。

註解

屬性(Attribute)

用以儲存檔案/目錄描述資訊,亦可加入各 App 對檔案/目錄獨有的資訊,以 XML 型式儲存,至少須包含以下三個內容:

  • creationtime : 建立時間
  • lastaccesstime : 最後一次存取時間
  • lastwritetime : 最後一次變更時間
  • 以上三個時間皆是從1970年至今的秒數。

    Ex: 131305412313130541231313054123

※ 由於Attribute內容,除了上述三個時間外,可能因不同應用而加上不同的內容。於修改內容時,請僅針對三個時間,或是您自訂的內容做修改,其他的請務必保留。

合法的標示代碼(Mark ID)

開放客戶端對指定檔案/目錄做特殊的標示記號,用以標註該檔案/目標的特殊意義 (例如:重要或書籤)。

目前 OmniStor 開放標示代碼為:

  1. 表示星號。

查詢分享檔案是否有密碼保護(/fsentry/checkpassword/)

伺服器:InfoRelay

目的:此 API 可供客戶端檢驗指定之分享碼(Share Code 請參閱註解) 是否須輸入密碼才可存取。取得分享碼(Share Code) 相關的說明可參考 API:/fsentry/setadvancedsharecode/

/fsentry/checkpassword/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<checkpassword>
	<token>{ token }</token>
	<userid>{ User ID }</userid>
	<suri>{ 檢驗是否須輸入密碼方能存取目標的分享碼(Share Code) }</suri>
</checkpassword>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<checkpassword>
	<status>{ Status Code }</status>
	<ifpassword>[ 0 | 1 ]</ifpassword><!-- 1:表示需輸入密碼方能存取具備此分享碼(Share Code) 的檔案 -->
</checkpassword>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
3 Payload is not validate。
218 要處理的目錄不存在或已刪除。
219 要處理的檔案不存在或已刪除。
999 General Error。

驗證分享檔案密碼(/fsentry/comparepassword/)

伺服器:InfoRelay

目的:此 API 可供客戶端驗證分享檔案/目錄的密碼(此密碼指的是檔案/目錄被分享時所設定的存取密碼)。取得分享碼(Share Code) 相關的說明可參考 API:/fsentry/setadvancedsharecode/

/fsentry/comparepassword/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<comparepassword>
	<token>{ token }</token>
	<userid>{ User ID }</userid>
	<isfolder>[ 0 | 1 ]</isfolder><!-- 0:表示指定的 ffid 參數值為檔案 ID(File ID) | 1:則表示為目錄 ID(Folder ID) -->
	<ffid>{ File ID | Folder ID }</ffid>
	<passwd>{ 保護被分享檔案的密碼。密碼轉小寫後,再經過 MD5 編碼(請參閱註解) }</passwd>
</comparepassword>
								  

Output


<!--?xml version="1.0" encoding="utf-8"?-->
<checkpassword>
	<status>{ Status Code }</status>
</checkpassword>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
3 Payload is not validate。
218 要處理的目錄不存在或已刪除。
219 要處理的檔案不存在或已刪除。
229 存取指定檔案的密碼不正確。
999 General Error。

註解

分享碼(Share Code)

分享連結(URI) 的顯示方式為「http://oeo.la/{Share Code}」。

MD5 編碼注意事項

若您的 MD5 編碼未經過十六進制轉換,請務必在MD5編碼過後,再以十六進位轉換。十六進位所使用的「a,b,c,d,e,f」字母須為小寫。

長分享碼換取短分享碼(/sharecode/tocompactform/)

伺服器:ServicePortal

目的:此 API 可供客戶端用長分享碼轉換取得一組短分享碼。可便利使用者需要手動輸入分享碼(例如:ibon 列印)。

※ 註:關於 OmniStor 系統所提供的分享(Share) 功能,請參見 InfoRelay 技術文件。

/sharecode/tocompactform/

Input


<!--?xml version="1.0" encoding="utf-8" ?-->
<tocompactform>
	<sharecode>{ 長分享碼 }</sharecode>
</tocompactform>
								  

Output


<!--?xml version="1.0" encoding="UTF-8" ?-->
<tocompactform>
	<status>{ Status Code }</status>
	<compactsharecode>{ 短分享碼 }</compactsharecode>
</tocompactform>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
225 Illegal Argument(例如:未傳 參數欄位值)。
999 General Error。

短分享碼取回長分享碼(/sharecode/tonormalform/)

伺服器:ServicePortal

目的:此 API 可供客戶端用短分享碼取回轉換前的長分享碼。

※ 註:關於 OmniStor 系統所提供的分享(Share) 功能,請參見 InfoRelay 技術文件。

/sharecode/tonormalform/

Input


<!--?xml version="1.0" encoding="utf-8" ?-->
<tonormalform>
	<compactsharecode>{ 短分享碼 }</compactsharecode>
</tonormalform>
								  

Output


<!--?xml version="1.0" encoding="UTF-8" ?-->
<tonormalform>
	<status>{ Status Code }</status>
	<servicearea>{ 服務區域 ID(Service Area ID)(詳情請參閱註解「服務區域 ID 列表」) }</servicearea>
	<sharecode>{ 長分享碼 }</sharecode>
</tonormalform>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
999 General Error。

註解

服務區域 ID 列表

服務區域 ID 服務區域
1 台灣
2 美國
3 大陸

分享碼查詢 ServiceGateway 位址(/sharecode/findservicegateway/)

伺服器:ServicePortal

目的:此 API 可供客戶端,以分享碼查詢 ServiceGateway 的位址。

/sharecode/findservicegateway/

Input


<!--?xml version="1.0" encoding="utf-8"?-->
<findservicegateway>
	<sharecode>{ 分享碼 }</sharecode>
</findservicegateway>
								  

Output


<!--?xml version="1.0" encoding="UTF-8"?-->
<findservicegateway>
	<status>{ Status Code }</status>
	<servicegateway>{ ServiceGateway位址 }</servicegateway>
</findservicegateway>
								  

回傳的狀態碼(Status Code)


0 Success。
2 Authentication Fail。
999 General Error。