Drive Service

雲端硬碟

這項服務可讓指令碼在 Google 雲端硬碟中建立、尋找及修改檔案和資料夾。雖然內建的雲端硬碟服務較容易使用,但仍有一些限制。 如要使用最新功能、取得支援,以及存取共用雲端硬碟中的檔案或資料夾,請使用進階雲端硬碟服務

如果指令碼使用標準 Cloud 專案,而非預設 Cloud 專案,您必須手動開啟 Drive API。在標準 Cloud 專案中,開啟 Drive API:

啟用 Drive API

下列程式碼範例顯示如何記錄使用者「我的雲端硬碟」資料夾中每個檔案的名稱:
// Logs the name of every file in the user's Drive.
var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  console.log(file.getName());
}

類別

名稱簡短說明
Access列舉代表可存取檔案或資料夾的使用者類別,不包括已明確獲授權的任何個別使用者。
DriveApp允許指令碼在 Google 雲端硬碟中建立、尋找及修改檔案和資料夾。
FileGoogle 雲端硬碟中的檔案。
FileIterator這個疊代器可讓指令碼疊代處理大量檔案。
FolderGoogle 雲端硬碟中的資料夾。
FolderIterator這個物件可讓指令碼疊代處理可能包含大量資料夾的集合。
Permission這個列舉代表授予可存取檔案或資料夾的使用者權限,不包括明確獲得存取權的個別使用者。
User與 Google 雲端硬碟檔案相關聯的使用者。

Access

屬性

屬性類型說明
ANYONEEnum網際網路上的所有使用者都能尋找及存取。
ANYONE_WITH_LINKEnum知道連結的所有使用者皆可存取。
DOMAINEnum網域中的使用者皆可尋找和存取。
DOMAIN_WITH_LINKEnum網域中知道連結的任何人皆可存取。
PRIVATEEnum僅獲得明確授權的使用者可以存取。

DriveApp

屬性

屬性類型說明
AccessAccess列舉代表可存取檔案或資料夾的使用者類別,不包括已明確獲授權的任何個別使用者。
PermissionPermission這個列舉代表授予可存取檔案或資料夾的使用者權限,不包括明確獲得存取權的個別使用者。

方法

方法傳回類型簡短說明
continueFileIterator(continuationToken)FileIterator使用先前迭代器的接續符記,繼續執行檔案迭代。
continueFolderIterator(continuationToken)FolderIterator使用先前迭代器的續傳權杖,繼續執行資料夾迭代。
createFile(blob)File從任意資料的指定 Blob,在使用者雲端硬碟的根目錄中建立檔案。
createFile(name, content)File在使用者雲端硬碟的根目錄中,建立具有指定名稱和內容的文字檔案。
createFile(name, content, mimeType)File在使用者雲端硬碟的根目錄中,建立具有指定名稱、內容和 MIME 類型的檔案。
createFolder(name)Folder在使用者雲端硬碟的根目錄中,建立具有指定名稱的資料夾。
createShortcut(targetId)File建立所提供雲端硬碟項目 ID 的捷徑,並傳回該捷徑。
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)File為提供的雲端硬碟項目 ID 和資源金鑰建立捷徑,然後傳回。
enforceSingleParent(value)void針對會影響項目父項的所有呼叫,啟用或停用 enforceSingleParent 行為。
getFileById(id)File取得具有指定 ID 的檔案。
getFileByIdAndResourceKey(id, resourceKey)File取得具有指定 ID 和資源金鑰的檔案。
getFiles()FileIterator取得使用者雲端硬碟中的所有檔案集合。
getFilesByName(name)FileIterator取得使用者雲端硬碟中所有具有指定名稱的檔案集合。
getFilesByType(mimeType)FileIterator取得使用者雲端硬碟中具有指定 MIME 類型的所有檔案集合。
getFolderById(id)Folder取得具有指定 ID 的資料夾。
getFolderByIdAndResourceKey(id, resourceKey)Folder取得具有指定 ID 和資源金鑰的資料夾。
getFolders()FolderIterator取得使用者雲端硬碟中的所有資料夾集合。
getFoldersByName(name)FolderIterator取得使用者雲端硬碟中所有具有指定名稱的資料夾集合。
getRootFolder()Folder取得使用者雲端硬碟根目錄中的資料夾。
getStorageLimit()Integer取得使用者可在雲端硬碟中儲存的位元組數。
getStorageUsed()Integer取得使用者目前在雲端硬碟中儲存的位元組數。
getTrashedFiles()FileIterator取得使用者 Google 雲端硬碟垃圾桶中的所有檔案集合。
getTrashedFolders()FolderIterator取得使用者雲端硬碟垃圾桶中的所有資料夾集合。
searchFiles(params)FileIterator取得使用者雲端硬碟中符合指定搜尋條件的所有檔案集合。
searchFolders(params)FolderIterator取得使用者雲端硬碟中符合指定搜尋條件的所有資料夾集合。

File

方法

方法傳回類型簡短說明
addCommenter(emailAddress)File將指定使用者新增至 File 的留言者清單。
addCommenter(user)File將指定使用者新增至 File 的留言者清單。
addCommenters(emailAddresses)File將指定的使用者陣列新增至 File 的留言者清單。
addEditor(emailAddress)File將指定使用者新增至 File 的編輯者清單。
addEditor(user)File將指定使用者新增至 File 的編輯者清單。
addEditors(emailAddresses)File將指定的使用者陣列新增至 File 的編輯者清單。
addViewer(emailAddress)File將指定使用者新增至 File 的檢視者清單。
addViewer(user)File將指定使用者新增至 File 的檢視者清單。
addViewers(emailAddresses)File將指定的使用者陣列新增至 File 的檢視者清單。
getAccess(email)Permission取得授予特定使用者的權限。
getAccess(user)Permission取得授予特定使用者的權限。
getAs(contentType)Blob以轉換為指定內容類型的 Blob 形式,傳回這個物件內的資料。
getBlob()Blob將這個物件內的資料以 Blob 形式傳回。
getDateCreated()Date取得 File 的建立日期。
getDescription()String取得 File 的說明。
getDownloadUrl()String取得可用於下載檔案的網址。
getEditors()User[]取得這個 File 的編輯者清單。
getId()String取得 File 的 ID。
getLastUpdated()Date取得上次更新 File 的日期。
getMimeType()String取得檔案的 MIME 類型。
getName()String取得 File 的名稱。
getOwner()User取得檔案擁有者。
getParents()FolderIterator取得 File 的直屬父項資料夾集合。
getResourceKey()String取得 File 的資源金鑰,以便存取透過連結共用的項目。
getSecurityUpdateEligible()Boolean判斷這個 File 是否符合資格,可套用安全性更新,在透過連結共用時,必須提供資源金鑰才能存取。
getSecurityUpdateEnabled()Boolean取得這個 File 是否需要資源金鑰,才能透過連結存取共用內容。
getSharingAccess()Access取得可存取 File 的使用者類別,但明確獲授權的個別使用者除外。
getSharingPermission()Permission取得可存取 File 的使用者所獲授權,以及已明確獲授權的個別使用者。
getSize()Integer取得用於在雲端硬碟中儲存 File 的位元組數。
getTargetId()String如果是捷徑,則傳回所指向項目的 ID。
getTargetMimeType()String如果是捷徑,則傳回所指項目的 MIME 類型。
getTargetResourceKey()String如果檔案是捷徑,則會傳回所指項目的資源鍵。
getThumbnail()Blob|null取得檔案的縮圖,或在沒有縮圖時取得 null
getUrl()String取得可用於在 Google 應用程式 (例如雲端硬碟或 Google 文件) 中開啟 File 的網址。
getViewers()User[]取得這個 File 的檢視者和加註者清單。
isShareableByEditors()Boolean決定是否允許對 File 具有編輯權限的使用者與其他使用者共用,或變更權限。
isStarred()Boolean判斷 File 是否已在使用者雲端硬碟中加上星號。
isTrashed()Boolean判斷 File 是否位於使用者雲端硬碟的垃圾桶中。
makeCopy()File建立檔案副本。
makeCopy(destination)File在目的地目錄中建立檔案副本。
makeCopy(name)File建立檔案副本,並以提供的名稱命名。
makeCopy(name, destination)File在目標目錄中建立檔案副本,並以提供的名稱命名。
moveTo(destination)File將這個項目移至指定目標資料夾。
removeCommenter(emailAddress)FileFile 的留言者清單中移除指定使用者。
removeCommenter(user)FileFile 的留言者清單中移除指定使用者。
removeEditor(emailAddress)FileFile 的編輯者清單中移除指定使用者。
removeEditor(user)FileFile 的編輯者清單中移除指定使用者。
removeViewer(emailAddress)FileFile 的觀眾和留言者清單中移除指定使用者。
removeViewer(user)FileFile 的觀眾和留言者清單中移除指定使用者。
revokePermissions(emailAddress)File撤銷授予特定使用者的 File 存取權。
revokePermissions(user)File撤銷授予特定使用者的 File 存取權。
setContent(content)File使用指定的取代內容覆寫檔案內容。
setDescription(description)File設定 File 的說明。
setName(name)File設定 File 的名稱。
setOwner(emailAddress)File變更 File 的擁有者。
setOwner(user)File變更 File 的擁有者。
setSecurityUpdateEnabled(enabled)File設定 File 是否需要資源金鑰才能透過連結存取。
setShareableByEditors(shareable)File設定是否允許具備 File 編輯權限的使用者與其他使用者共用檔案或變更權限。
setSharing(accessType, permissionType)File設定哪些類別的使用者可以存取 File,以及授予這些使用者的權限 (明確授予存取權的個別使用者除外)。
setStarred(starred)File設定使用者雲端硬碟中的 File 是否已加上星號。
setTrashed(trashed)File設定 File 是否位於使用者雲端硬碟的垃圾桶中。

FileIterator

方法

方法傳回類型簡短說明
getContinuationToken()String取得權杖,可用於稍後繼續執行這個疊代。
hasNext()Boolean判斷呼叫 next() 是否會傳回項目。
next()File取得檔案或資料夾集合中的下一個項目。

Folder

方法

方法傳回類型簡短說明
addEditor(emailAddress)Folder將指定使用者新增至 Folder 的編輯者清單。
addEditor(user)Folder將指定使用者新增至 Folder 的編輯者清單。
addEditors(emailAddresses)Folder將指定的使用者陣列新增至 Folder 的編輯者清單。
addViewer(emailAddress)Folder將指定使用者新增至 Folder 的檢視者清單。
addViewer(user)Folder將指定使用者新增至 Folder 的檢視者清單。
addViewers(emailAddresses)Folder將指定的使用者陣列新增至 Folder 的檢視者清單。
createFile(blob)File使用任意資料的指定 Blob,在目前資料夾中建立檔案。
createFile(name, content)File在目前資料夾中建立文字檔案,並提供名稱和內容。
createFile(name, content, mimeType)File在目前資料夾中建立檔案,並指定名稱、內容和 MIME 類型。
createFolder(name)Folder在目前資料夾中建立指定名稱的資料夾。
createShortcut(targetId)File建立所提供雲端硬碟項目 ID 的捷徑,並傳回該捷徑。
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)File為提供的雲端硬碟項目 ID 和資源金鑰建立捷徑,然後傳回。
getAccess(email)Permission取得授予特定使用者的權限。
getAccess(user)Permission取得授予特定使用者的權限。
getDateCreated()Date取得 Folder 的建立日期。
getDescription()String取得 Folder 的說明。
getEditors()User[]取得這個 Folder 的編輯者清單。
getFiles()FileIterator取得目前資料夾所有子項檔案的集合。
getFilesByName(name)FileIterator取得目前資料夾中所有具有指定名稱的子項檔案集合。
getFilesByType(mimeType)FileIterator取得目前資料夾中具有指定 MIME 類型的一組子檔案。
getFolders()FolderIterator取得目前資料夾的所有子資料夾集合。
getFoldersByName(name)FolderIterator取得目前資料夾的所有子項資料夾集合,這些資料夾具有指定名稱。
getId()String取得 Folder 的 ID。
getLastUpdated()Date取得上次更新 Folder 的日期。
getName()String取得 Folder 的名稱。
getOwner()User取得這個 Folder 的擁有者。
getParents()FolderIterator取得 Folder 的直屬父項資料夾集合。
getResourceKey()String取得 Folder 的資源金鑰,以便存取透過連結共用的項目。
getSecurityUpdateEligible()Boolean判斷這個 Folder 是否符合資格,可套用安全性更新,在透過連結共用時,必須提供資源金鑰才能存取。
getSecurityUpdateEnabled()Boolean取得這個 Folder 是否需要資源金鑰,才能透過連結存取共用內容。
getSharingAccess()Access取得可存取 Folder 的使用者類別,但明確獲授權的個別使用者除外。
getSharingPermission()Permission取得可存取 Folder 的使用者所獲授權,以及已明確獲授權的個別使用者。
getSize()Integer取得用於在雲端硬碟中儲存 Folder 的位元組數。
getUrl()String取得可用於在 Google 應用程式 (例如雲端硬碟或 Google 文件) 中開啟 Folder 的網址。
getViewers()User[]取得這個 Folder 的檢視者和加註者清單。
isShareableByEditors()Boolean決定是否允許對 Folder 具有編輯權限的使用者與其他使用者共用,或變更權限。
isStarred()Boolean判斷 Folder 是否已在使用者雲端硬碟中加上星號。
isTrashed()Boolean判斷 Folder 是否位於使用者雲端硬碟的垃圾桶中。
moveTo(destination)Folder將這個項目移至指定目標資料夾。
removeEditor(emailAddress)FolderFolder 的編輯者清單中移除指定使用者。
removeEditor(user)FolderFolder 的編輯者清單中移除指定使用者。
removeViewer(emailAddress)FolderFolder 的觀眾和留言者清單中移除指定使用者。
removeViewer(user)FolderFolder 的觀眾和留言者清單中移除指定使用者。
revokePermissions(emailAddress)Folder撤銷授予特定使用者的 Folder 存取權。
revokePermissions(user)Folder撤銷授予特定使用者的 Folder 存取權。
searchFiles(params)FileIterator取得目前資料夾中符合指定搜尋條件的所有子項檔案集合。
searchFolders(params)FolderIterator取得目前資料夾的所有子項資料夾,並比對指定的搜尋條件。
setDescription(description)Folder設定 Folder 的說明。
setName(name)Folder設定 Folder 的名稱。
setOwner(emailAddress)Folder變更 Folder 的擁有者。
setOwner(user)Folder變更 Folder 的擁有者。
setSecurityUpdateEnabled(enabled)Folder設定 Folder 是否需要資源金鑰才能透過連結存取。
setShareableByEditors(shareable)Folder設定是否允許具備 Folder 編輯權限的使用者與其他使用者共用檔案或變更權限。
setSharing(accessType, permissionType)Folder設定哪些類別的使用者可以存取 Folder,以及授予這些使用者的權限 (明確授予存取權的個別使用者除外)。
setStarred(starred)Folder設定使用者雲端硬碟中的 Folder 是否已加上星號。
setTrashed(trashed)Folder設定 Folder 是否位於使用者雲端硬碟的垃圾桶中。

FolderIterator

方法

方法傳回類型簡短說明
getContinuationToken()String取得權杖,可用於稍後繼續執行這個疊代。
hasNext()Boolean判斷呼叫 next() 是否會傳回項目。
next()Folder取得檔案或資料夾集合中的下一個項目。

Permission

屬性

屬性類型說明
VIEWEnum可存取檔案或資料夾的使用者只能檢視或複製檔案/資料夾。
EDITEnum可存取檔案或資料夾的使用者都能編輯。
COMMENTEnum有權存取檔案或資料夾的使用者只能檢視、複製或加註檔案。
OWNEREnum使用者是檔案或資料夾的擁有者。
ORGANIZEREnum使用者可以在共用雲端硬碟中整理檔案和資料夾。
FILE_ORGANIZEREnum使用者可以在共用雲端硬碟中編輯、刪除及移動內容。
NONEEnum使用者沒有檔案或資料夾的任何權限。

User

方法

方法傳回類型簡短說明
getDomain()String|null取得與使用者帳戶相關聯的網域名稱。
getEmail()String|null取得使用者的電子郵件地址。
getName()String|null取得使用者名稱。
getPhotoUrl()String|null取得使用者相片的網址。