檔案與目錄之基本操作


建立目錄

  • 伺服器: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

類別

名稱

Folder ID

system.{package}.home.root

我的收藏

0

system.backup.root

我的備份

-3

system.sync.root

同步中心

-5