2016-08-22 8 views
0

Googleドライブサービスアカウントのファイルがどれくらい長く保持されているかを知りたかったですか?ファイルはいつGoogleドライブサービスアカウントから削除されますか?

デフォルトの有効期限が見つかりませんでした。アカウントを管理できないため、ファイルが削除されているかどうかを知る方法はありますか?サービスアカウントからファイルを自分で削除する必要はありますか?

答えて

1

あなたが削除した場合は、そのAPIを使用するサービスアカウントのファイル(サービスアカウントはそのファイルの所有者であるため)は、ファイルにアクセスするユーザーのすべての共有ドライブセクションから削除されます。ありがとう@ some1、@MrRebotと@Hadar Ben Davidはこの結論を思いついてくれました。

1

あなたはアカウントを管理していないので、実際にそのアカウントが所有するファイルをどのように削除するかわかりません。所有者がファイルを削除しない限り、ファイルはそこにとどまります。

https://support.google.com/drive/answer/2375102

あなたのドライブからファイルを削除するには、ゴミ箱に

をファイルに入れて、あなたのゴミ箱にそれを を置くことができます。ごみ箱を空にするまでファイルはそこにとどまります。

ファイルの所有者は、 ファイルを完全に削除するまで、ファイルの所有者が表示できます。 オーナーでなければ、ごみ箱を空にしても ファイルを見ることができます。

1

ユーザーがファイルを作成する方法(有効期限なし)と同じです。削除されたような変更を確認するには、Change Feedretrieve the changesにチェックしてください。

変更:リスト

    ユーザーのための変更を一覧表示します

Changes collectionがユーザーと共有されているものも含め、すべてのファイルへの変更を検出するための効率的な方法を提供し、ファイルへの変更を追跡する必要がGoogleドライブアプリの変更

  • を検出します。コレクションは、指定された時点以降にファイルが変更された場合にのみ、各ファイルの現在の状態を提供することによって機能します。

あなたはそれがファイルの所有者であることを考えるとサービスアカウントを使用してファイルを削除することができます。また、ファイル/フォルダが削除されたかどうかを確認する方法については、このSO questionを確認することができます。

1

ファイルは、自分で削除するまでそのまま残ります。 あなたはいつでもGoogleドライブAPI(私はV3を使用して)からファイルリストを取得し、IDでファイルリストを取得し、必要なものを削除できます。あなたはまだWebインターフェイス経由でそれを行うことはできません。

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; 

    } 

とどのように特定のファイルを削除するには:ファイルの一覧を取得する方法についてのC#は、以下

は一例であり、私は考え出した何

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; 
     } 

    } 
+0

お返事ありがとうございました@Hadar Ben David私はコールを知っているが、これをすべて読んで、削除されなければ、ファイルはストレージがなくても無期限にサービスアカウントに保存される。正しい?また、ファイルがサービスアカウントによって共有されている場合、そのファイルも共有ユーザーのドライブに格納されます。サービスアカウントから削除すると、ファイルは共有ユーザーのアカウントからも削除されますか? – Atihska

+0

@Atihska、サービスアカウントと「通常の」アカウントは2つの別個のエンティティです。両方のアカウントにファイルを独立して保存することができます。また、Web UIではサービスアカウントにアクセスできません。したがって、Google APIを使用してファイルをアップロードした場合は、APIによっても削除する必要があります。それらの間で情報を共有することを決めた場合、両方ともgoogleの共有ポリシーに従います。ファイルの所有者はファイルの完全な制御権を持ち、ファイルは所有者のアカウントのディスク領域を占有します。所有者だけがそのファイルを削除できます。エディタは、ファイル自体にアクセスするのではなく、そのファイルへのアクセス権を削除することができます。 –

+0

@Atihska、今のところ、サービスアカウントのクォータは15GBで、通常のアカウントをアップグレードしてもアップグレードすることはできません。 –

関連する問題