檔案與目錄之基本操作
建立目錄
伺服器:InfoRelay
目的:此 API 可供客戶端建立目錄。客戶端建立目錄時,須先指定父目錄(Parent Folder) 為何。被建立的目錄名稱是經 Base64(UTF-8) 編碼後的結果。
POST /folder/create/
Input
<!--?xml version="1.0" encoding="utf-8" ?-->
<create>
<token>{ token }</token>
<userid>{ User ID }</userid>
<parent>{ Parent Folder ID }</parent> <!-- 系統資料夾本身不能成為 /folder/create/ 群組編輯功能指定的目錄 -->
<isencrypted>[ 0 | 1 ]</isencrypted>
<display>{ 以Base64(UTF-8)編碼的目錄名稱 }</display> <!-- 若您使用的開發語言為 Ruby,請用 Base64.strict_encode64,避免“\n”在編碼之後出現。-->
<attribute>{ Data }</attribute>
<isgroupaware>[ 0 | 1 ]</isgroupaware> <!-- 1:啟用協同合作資料夾功能。詳情請參考「InfoRelay分享功能簡介」的說明 -->
</create>
Output
<!--?xml version="1.0" encoding="utf-8" ?-->
<create>
<status>{ Status Code }</status>
<id>{ Folder ID }</id>
</create>
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
3 | Payload is not validate |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
200 | 唯讀權限,無法進行操作。 |
211 | 名稱為空白。 |
213 | 名稱長度超過限制。 |
214 | 欲建立的目錄與同目錄下的子目錄或檔案名稱重複。 |
218 | 父目錄(Parent Folder)不存在或已刪除。 |
999 | General Error。 |
移動目錄
伺服器:InfoRelay
目的:此API可供客戶端移動指定目錄至目的地目錄之下。目錄名稱為經 Base64(UTF-8)編碼的結果。
POST /folder/move/
Input
<!--?xml version="1.0" encoding="utf-8" ?-->
<move>
<token>{ token }</token>
<userid>{ User ID }</userid>
<id>{ Folder ID }</id>
<display>{ 以 Base64(UTF-8) 編碼的目錄名稱 }</display> <!-- 被移動的指定目錄名稱。若您使用的開發語言為 Ruby,請用 Base64.strict_encode64,避免“\n”在編碼之後出現。 -->
<parent>{ New Parent Folder ID }</parent>
<isgroupaware>[ 0 | 1 ]</isgroupaware> <!-- 1:啟用協同合作資料夾功能。詳情請參考「InfoRelay 分享功能簡介」的說明 -->
</move>
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
213 | 上傳目錄名稱長度超過 255。 |
214 | 欲移動的目錄與同目錄下的子目錄或檔案名稱重複。 |
215 | 移動的目的地與來源目錄的上一層為同一目錄。 |
216 | 目的地目錄不存在。 |
218 | 被移動的指定目錄不存在。 |
225 | 上傳參數錯誤。 |
233 | 指定被移動的目錄與目的地目錄不在同一目錄樹下。 |
235 | 上傳參數的操作要求錯誤。 |
999 | General Error。 |
移除目錄
伺服器:InfoRelay
目的:此 API 供客戶端刪除指定的目錄,並且可以批次刪除。預設情況下,參數 ischildonly 為 0,系統將刪除掉客戶端指定的目錄及其之下的子目錄和檔案;然而,當參數 ischildonly 設定為 1 時,只刪除指定目錄之下的子目錄及檔案,不刪除指定目錄本身。
POST /folder/remove/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
200 | 唯讀權限,無法進行操作。 |
218 | 要刪除的指定目錄不存在或已刪除(一次刪除多目錄時不會有這個錯誤)。 |
999 | General Error。 |
移動檔案
伺服器:InfoRelay
目的:此 API 可供客戶端移動指定的檔案至指定的目錄下。
POST /file/move/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
214 | 欲移動的檔案與同目錄下的子目錄或檔案名稱重複。 |
215 | 移動的目的地與來源目錄之上一層為同一個目錄。 |
216 | 移動的目的地目錄不存在。 |
218 | 目錄不存在或已刪除。 |
219 | 檔案不存在或已刪除。 |
225 | 上傳參數錯誤。 |
233 | 指定被移動的目錄與目的地目錄不在同一目錄樹下。 |
235 | 上傳參數的操作要求錯誤。 |
999 | General Error。 |
移除檔案
伺服器:InfoRelay
目的:接受客戶端要求,刪除客戶端指定的檔案。可一次指定多個檔案來刪除,若刪除任何一個檔案失敗,則將恢復異動前的狀態。
POST /file/remove/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
200 | 唯讀權限,無法進行操作。 |
219 | 要處理的檔案不存在或已刪除。 |
999 | General Error。 |
複製檔案
伺服器:InfoRelay
目的:此API可供客戶端複製一個或多個檔案至目的地目錄下。
指定檔案皆須屬於同一目錄下。
POST /file/copy/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
216 | 目的地目錄不存在。 |
218 | 要處理的目錄不存在或已刪除。 |
219 | 檔案不存在或已刪除。 |
225 | 上傳參數錯誤。 |
234 | 欲複製的檔案,其父目錄不一致(例如:/file/copy/ 一次指定多個檔案,所有檔案的父目錄必須相同)。 |
235 | 上傳參數的操作要求錯誤。 |
999 | General Error。 |
重新命名目錄
伺服器:InfoRelay
目的:此 API 可供客戶端賦予指定目錄新的名稱。目錄名稱為經 Base64(UTF-8) 編碼的結果。
POST /folder/rename/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
211 | 目錄的名稱是空值。 |
213 | 目錄的名稱長度超過255。 |
214 | 欲重新命名的目錄與同目錄下的子目錄或檔案名稱重複。 |
218 | 欲重新命名的目錄不存在。 |
225 | 輸入參數錯誤(例如:id 參數值未傳)。 |
235 | 參數的操作要求錯誤。 |
999 | General Error。 |
重新命名檔案
伺服器:InfoRelay
目的:此 API 可供客戶端賦予指定檔案新的名稱。檔案名稱為經 Base64(UTF-8) 編碼的結果。
POST /file/rename/
Input
Output
回傳的狀態碼(Status Code)
狀態碼 | 狀態描述 |
---|---|
0 | Success。 |
2 | Authentication Fail。 |
5 | Developer Authentication Fail。(例如:sid 不存在或 ProgKey 驗證失敗。) |
211 | 欲重新命名的指定檔案名稱是空值。 |
213 | 欲重新命名的指定檔案名稱長度超過255。 |
214 | 欲重新命名的檔案與同目錄下的子目錄或檔案名稱重複。 |
219 | 欲重新命名的指定檔案不存在。 |
225 | 上傳參數錯誤(例如:id參數值未傳)。 |
235 | 上傳參數的操作要求錯誤。 |
999 | General Error。 |
其他注意事項
協同合作 資料夾
如欲使用協同合作資料夾功能時,其操作之客戶端應用程式(Client Application) 必須在 HTTP Header 中提供 SID及ProgKey(必須採用 Authorization 的方式,Authorization Header 請參見 ServiceGateway 技術文件的 /member/acquiretoken/),當 SID 及 ProgKey 通過 OmniStore Server 的認證後,方能啟用協同合作資料夾功能(如欲詳知 OmniStor 系統所提供的分享功能,請參照本文件「分享功能簡介」)。
我的收藏 資料夾
{package}是從 AcquireToken API 所回傳的 XML Payload 中取得,為 package 參數中的 display 參數值(請參閱文件「ServiceGateway Technical Spec」)。
系統資料夾ID列表
類別 | 名稱 | Folder ID |
---|---|---|
system.{package}.home.root | 我的收藏 | 0 |
system.backup.root | 我的備份 | -3 |
system.sync.root | 同步中心 | -5 |
- 1 建立目錄
- 1.1 POST /folder/create/
- 1.1.1 Input
- 1.1.2 Output
- 1.1.3 回傳的狀態碼(Status Code)
- 1.1 POST /folder/create/
- 2 移動目錄
- 2.1 POST /folder/move/
- 2.1.1 Input
- 2.1.2 Output
- 2.1.3 回傳的狀態碼(Status Code)
- 2.1 POST /folder/move/
- 3 移除目錄
- 3.1 POST /folder/remove/
- 3.1.1 Input
- 3.1.2 Output
- 3.1.3 回傳的狀態碼(Status Code)
- 3.1 POST /folder/remove/
- 4 移動檔案
- 4.1 POST /file/move/
- 5 移除檔案
- 5.1 POST /file/remove/
- 5.1.1 Input
- 5.1.2 Output
- 5.1.3 回傳的狀態碼(Status Code)
- 5.1 POST /file/remove/
- 6 複製檔案
- 6.1 POST /file/copy/
- 6.1.1 Input
- 6.1.2 Output
- 6.1.3 回傳的狀態碼(Status Code)
- 6.1 POST /file/copy/
- 7 重新命名目錄
- 7.1 POST /folder/rename/
- 7.1.1 Input
- 7.1.2 Output
- 7.1.3 回傳的狀態碼(Status Code)
- 7.1 POST /folder/rename/
- 8 重新命名檔案
- 8.1 POST /file/rename/
- 8.1.1 Input
- 8.1.2 Output
- 8.1.3 回傳的狀態碼(Status Code)
- 8.1 POST /file/rename/
- 9 其他注意事項
- 9.1 協同合作 資料夾
- 9.2 我的收藏 資料夾
- 9.3 屬性(Attribute)
- 9.4 合法的標示代碼(Mark ID)
- 9.5 群組編輯
- 9.6 若您為 Ruby 開發者
- 9.7 系統資料夾ID列表