我想知道在谷歌驅動器服務帳戶中的文件保留多久?這些文件何時從Google雲端硬盤服務帳戶中刪除?
我找不到它的默認過期時間。由於我無法控制帳戶,我怎麼能知道該文件被刪除或者如果沒有辦法,我是否必須自己刪除服務帳戶中的文件?
我想知道在谷歌驅動器服務帳戶中的文件保留多久?這些文件何時從Google雲端硬盤服務帳戶中刪除?
我找不到它的默認過期時間。由於我無法控制帳戶,我怎麼能知道該文件被刪除或者如果沒有辦法,我是否必須自己刪除服務帳戶中的文件?
我想通些什麼了,如果你刪除使用API的服務帳戶(因爲服務帳戶是該文件的所有者)中的文件,它將從訪問該文件的用戶的所有共享驅動器部分中刪除。感謝@ some1,@MrRebot和@Hadar Ben David幫助我得出這個結論。
由於您無法控制帳戶,我不明白您如何實際刪除該帳戶擁有的文件。只要所有者不刪除它,該文件就會保留在那裏。
https://support.google.com/drive/answer/2375102
將一個文件中的垃圾
要從驅動器上刪除一個文件,你可以把它 在垃圾桶。您的文件將保留在那裏,直到您清空垃圾。
如果您是該文件的所有者,則其他人可以查看該文件,直到您永久刪除該文件。 如果您不是所有者,即使您清空垃圾桶,其他人也可以看到 文件。
這與用戶創建文件(無過期日期)相同。要知道是否被刪除等任何更改,您可以檢查Change Feed至retrieve the changes。
變化:列表
- 列出的變化給用戶。
檢測更改
- 對於需要不斷修改文件的跟蹤谷歌雲端硬盤應用中,Changes collection提供了一個有效的方法來檢測對所有文件,包括那些已與用戶共享。該集合通過提供每個文件的當前狀態來工作,當且僅當文件在給定時間點以後發生了變化。
您可以使用刪除因爲它是文件的所有者的服務帳戶文件。您也可以查看此SO question,瞭解如何檢查文件/文件夾是否被刪除。
這些文件留在那裏,直到你自己刪除它們。 您可以隨時從谷歌驅動器API(我使用V3)獲取文件列表,並使用它們的ID獲取文件列表並刪除您想要的任何文件。您還無法通過網絡界面進行操作。
下面是一個例子是如何得到的文件列表C#:
public List<Google.Apis.Drive.v3.Data.File> GetFilesList(string SearchQ = null)
{
List<Google.Apis.Drive.v3.Data.File> ListOfFiles = new List<Google.Apis.Drive.v3.Data.File>();
FilesResource.ListRequest listRequest = _CurrentDriveService.Files.List();
listRequest.PageSize = 1000;
if (SearchQ != null)
{
listRequest.Q = SearchQ; //("'PARENT_ID' in parents");
}
listRequest.Fields = "nextPageToken, files(id, name,parents,mimeType,size,capabilities,modifiedTime,webViewLink,webContentLink)";
FileList fileFeedList = listRequest.Execute();
while (fileFeedList != null)
{
foreach (File file in fileFeedList.Files)
{
ListOfFiles.Add(file);
}
if (fileFeedList.NextPageToken == null)
{
break;
}
listRequest.PageToken = fileFeedList.NextPageToken;
fileFeedList = listRequest.Execute();
}
return ListOfFiles;
}
以及如何刪除特定文件:
public bool DeleteFileFromDrive(string FileID) // only to be used when you are the owner of the file. Otherwise it will have no effect.
{
try
{
FilesResource.GetRequest gr = new FilesResource.GetRequest(_CurrentDriveService, FileID);
var FileData = gr.Execute();
if (FileData.MimeType == GoogleDriveMimeTypes.GetFolderMimeTypeString())
{
var filesInFolder = GetFilesList("'" + FileID + "' in parents");
if (filesInFolder.Count > 0)
{
// directory is not empty
return false;
}
}
var requestD = _CurrentDriveService.Files.Delete(FileID);
requestD.Execute();
return true;
}
catch (Exception e)
{
System.Diagnostics.Debug.WriteLine(e.Message);
return false;
}
}
感謝@哈達爾本大衛您的詳細回覆。我知道這些電話,但是閱讀所有這些我應該確定,如果不刪除,文件將無限期地存儲在服務帳戶中,除非存儲空間不足。正確?如果該文件由服務帳戶共享,則該文件也會存儲到共享用戶的驅動器中。從服務帳戶刪除時,該文件是否也會從共享用戶的帳戶中刪除? – Atihska
@Atihska,服務賬戶和「常規」賬戶是兩個獨立的實體。您可以在兩個帳戶中獨立存儲文件。另外,Web UI無法訪問服務帳戶。所以,如果你通過谷歌API上傳文件,你也必須通過API刪除它們。如果您決定在他們之間共享信息,他們都會遵守Google的共享政策:文件所有者完全控制它,並且該文件將佔用所有者帳戶中的磁盤空間。只有所有者才能刪除該文件。編輯器可以刪除他自己對該文件的訪問權限,但不能刪除文件本身。 –
@Atihska,目前服務帳戶的配額爲15GB,即使升級常規帳戶也無法升級。 –