您可以從「我的雲端硬碟」和共用雲端硬碟中移除 Google 雲端硬碟檔案和資料夾。你可以選擇將檔案移至垃圾桶或刪除。
您可以將檔案和資料夾移至垃圾桶,然後還原 (必須在移至垃圾桶後 30 天內)。刪除檔案和資料夾後,這些項目會從 Google 雲端硬碟永久移除。如果一次將多個檔案或資料夾移至垃圾桶、還原或永久刪除,可能要過一段時間才看得到變更。
本指南說明如何處置雲端硬碟中的檔案。
使用 fields 參數
如要指定要在回應中傳回的欄位,可以使用 files
資源的任何方法,設定 fields
system 參數。如果省略 fields
參數,伺服器會傳回方法專屬的預設欄位集。舉例來說,list
方法只會傳回每個檔案的 kind
、id
、name
、mimeType
和 resourceKey
欄位。如要傳回不同欄位,請參閱「傳回特定欄位」。
垃圾桶
如要移除雲端硬碟檔案,請將檔案移至垃圾桶。移至垃圾桶的檔案會在 30 天後自動刪除,只要檔案移至垃圾桶的時間未滿 30 天,就可以還原檔案。
只有檔案擁有者可以將檔案移至垃圾桶,其他使用者無法查看擁有者垃圾桶中的檔案。如果您嘗試將不屬於自己的檔案移至垃圾桶,系統會顯示 insufficientFilePermissions
錯誤訊息。詳情請參閱「權限」。
如要驗證您是檔案擁有者,請使用 fileId
路徑參數和設為布林值 ownedByMe
欄位的 fields
參數,呼叫 files
資源上的 get
方法。共用雲端硬碟中的檔案是由共用雲端硬碟擁有,而非個別使用者,因此系統不會為這類檔案填入 ownedByMe
欄位。如要進一步瞭解 fields
參數,請參閱「使用 fields 參數」。
如果你不是檔案擁有者,但仍想要已刪除檔案的副本,請採取下列其中一項做法:
- 建立檔案副本。
- 請擁有者從垃圾桶還原檔案。
將檔案移至垃圾桶
如要將檔案移至垃圾桶,請使用 files
資源的 update
方法,並搭配 fileId
路徑參數,然後將布林值 trashed
欄位設為 true
。如要將共用雲端硬碟檔案移至垃圾桶,您也必須將布林值 supportsAllDrives
查詢參數設為 true
。詳情請參閱實作共用雲端硬碟支援功能。
如果成功,回應主體會包含 files
資源的例項。
以下程式碼範例說明如何使用 fileId
將檔案標示為已刪除:
Python
body_value = {'trashed': True}
response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()
Node.js
const body_value = {
'trashed': true
};
const response = await drive_service.files.update({
fileId: 'FILE_ID',
requestBody: body_value,
});
return response;
將 FILE_ID 替換為要刪除的檔案 fileId
。
判斷垃圾桶中檔案的屬性
檔案遭到刪除時,您可以擷取其他檔案屬性。您可以在 files
資源上使用 get
方法搭配 fileId
路徑參數,並在 fields
參數中使用下列其中一個已刪除的欄位。如要進一步瞭解 fields
參數,請參閱「使用 fields 參數」。
系統會為所有檔案填入下列欄位:
trashed
:檔案是否已遭刪除 (明確刪除或從已刪除的上層資料夾刪除)。請注意,使用trashed
和update
方法會設定檔案狀態,而get
方法則會擷取檔案狀態。explicitlyTrashed
: 檔案是否明確遭到刪除,而非從上層資料夾遞迴刪除。
只有共用雲端硬碟中的檔案才會填入下列欄位:
trashedTime
:項目遭刪除的時間,採用 RFC 3339 日期時間格式。如果您使用舊版 Drive API 第 2 版,這個欄位稱為trashedDate
。trashingUser
:如果檔案是明確移至垃圾桶,則為移至垃圾桶的使用者。
還原垃圾桶中的檔案
如要從垃圾桶還原檔案,請在 files
資源上使用 update
方法,並搭配 fileId
路徑參數,然後將布林值 trashed
欄位設為 false
。如要還原共用雲端硬碟中的檔案,您也必須將布林值 supportsAllDrives
查詢參數設為 true
。詳情請參閱實作共用雲端硬碟支援功能。
如果成功,回應主體會包含 files
資源的例項。
下列程式碼範例說明如何使用 fileId
將檔案標示為未刪除:
Python
body_value = {'trashed': False}
response = drive_service.files().update(fileId="FILE_ID", body=body_value).execute()
Node.js
const body_value = {
'trashed': false
};
const response = await drive_service.files.update({
fileId: 'FILE_ID',
requestBody: body_value,
});
return response;
將 FILE_ID 替換為要取消刪除的檔案 fileId
。
清空垃圾桶
您可以使用 files
資源的 emptyTrash
方法,永久刪除使用者移至垃圾桶的所有雲端硬碟檔案。如要清空共用雲端硬碟的垃圾桶,您也必須將 driveId
查詢參數設為共用雲端硬碟 ID。
如果成功,回應主體會包含空白的 JSON 物件。
下列程式碼範例說明如何使用 fileId
永久刪除垃圾桶中的所有檔案:
Python
response = drive_service.files().emptyTrash().execute()
Node.js
const response = await drive_service.files.emptyTrash({
});
return response;
刪除
你可以永久刪除雲端硬碟檔案,不必先移至垃圾桶。刪除後共用對象就無法再存取檔案。如要讓其他人繼續存取檔案,可以在刪除前轉移擁有權。
如要刪除共用雲端硬碟檔案,使用者必須擁有父項資料夾的 role=organizer
。如果刪除資料夾,使用者擁有的所有後代項目也會一併刪除。詳情請參閱「權限」。
如要永久刪除使用者擁有的檔案,而不將檔案移至垃圾桶,請在 files
資源上使用 delete
方法。如要刪除共用雲端硬碟檔案,您也必須將布林值 supportsAllDrives
查詢參數設為 true
。詳情請參閱實作共用雲端硬碟支援功能。
如果成功,回應主體會包含空白的 JSON 物件。
下列程式碼範例說明如何使用 fileId
刪除檔案:
Python
response = drive_service.files().delete(fileId="FILE_ID").execute()
Node.js
const response = await drive_service.files.delete({
fileId: 'FILE_ID'
});
return response;
將 FILE_ID 替換為要刪除的檔案 fileId
。
權限
下表列出垃圾桶或刪除檔案和資料夾所需的角色權限。如需角色完整清單,以及每個角色允許執行的作業,請參閱「角色和權限」。
允許的作業 | owner |
organizer |
fileOrganizer |
writer |
commenter |
reader |
---|---|---|---|---|---|---|
將檔案和資料夾移至垃圾桶 | ||||||
從垃圾桶復原檔案和資料夾 | ||||||
清空垃圾桶 | ||||||
刪除檔案或資料夾 | ||||||
刪除共用雲端硬碟中的檔案和資料夾 [*] | ||||||
刪除空白共用雲端硬碟 |
功能
files
資源包含一組布林值 capabilities
欄位,指出使用者對這個檔案擁有的功能。
如要檢查功能,請使用 fileId
路徑參數,在 files
資源上呼叫 get
方法,並在 fields
參數中使用下列其中一個 capabilities
欄位。如要進一步瞭解 fields
參數,請參閱「使用 fields 參數」。
系統會為所有檔案填入下列欄位:
capabilities.canTrash
: 目前使用者是否可將這個檔案移至垃圾桶。capabilities.canUntrash
: 目前使用者是否可以從垃圾桶還原這個檔案。capabilities.canDelete
:目前使用者是否可以刪除這個檔案。capabilities.canRemoveChildren
: 目前使用者是否可以從這個資料夾移除子項。如果項目不是資料夾,則為false
。
只有共用雲端硬碟中的檔案才會填入下列欄位:
capabilities.canTrashChildren
:目前使用者是否可以將這個資料夾的子項移至垃圾桶。如果項目不是資料夾,則為false
。capabilities.canDeleteChildren
:目前使用者是否可以刪除這個資料夾的子項。如果項目不是資料夾,則為false
。
檔案和資料夾限制
雲端硬碟檔案和資料夾 (包括共用雲端硬碟資料夾) 設有儲存空間限制。
一般來說,達到項目上限後,如要釋出更多空間,只能永久刪除項目或使用其他帳戶。將檔案移至垃圾桶無法釋出空間。
如要進一步瞭解檔案和資料夾限制,請參閱下列文章: