2016-08-22 2 views

Antwort

1

Was ich herausgefunden, dass, wenn Sie die löschen Datei vom Dienstkonto unter Verwendung der API (und weil das Dienstkonto der Eigentümer dieser Datei ist), wird es aus allen freigegebenen Laufwerkabschnitten der Benutzer gelöscht, die auf die Datei zugreifen. Danke @ some1, @MrRebot und @Hadar Ben David, dass er mir bei dieser Schlussfolgerung geholfen hat.

1

Da Sie keine Kontrolle über das Konto haben, sehe ich nicht, wie Sie die Dateien, die diesem Konto gehören, löschen können. Die Datei bleibt so lange bestehen, wie der Eigentümer sie nicht löscht.

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

eine Datei im Müll Put

Um eine Datei aus dem Laufwerk zu entfernen, können Sie es in Ihrem Papierkorb legen. Ihre Datei wird dort bleiben, bis Sie Ihren Papierkorb leeren.

Wenn Sie der Eigentümer der Datei sind, können andere Benutzer die Datei anzeigen, bis Sie die Datei dauerhaft löschen . Wenn Sie nicht der Besitzer sind, können andere die Datei sehen, selbst wenn Sie Ihren Papierkorb leeren.

1

Es ist das gleiche wie ein Benutzer eine Datei erstellt (kein Ablaufdatum). Um Änderungen zu erfahren, wie wenn sie gelöscht werden, können Sie die Change Feed bis retrieve the changes überprüfen.

Änderungen: Liste

  • Listet die Änderungen für einen Benutzer.

Detect Änderungen

  • Für Google Drive-Apps, die den Überblick über Änderungen an Dateien zu halten brauchen, bietet die Changes collection eine effiziente Möglichkeit, Änderungen an allen Dateien zu erkennen, einschließlich derer, die mit einem Benutzer freigegeben wurden . Die Sammlung funktioniert, indem sie den aktuellen Status jeder Datei angibt, genau dann, wenn sich die Datei seit einem bestimmten Zeitpunkt geändert hat.

Sie können die Dateien mit dem Dienstkonto gegeben löschen, dass es der Besitzer der Datei ist. Sie können auch SO question überprüfen, wie Sie prüfen können, ob eine Datei/ein Ordner gelöscht wurde.

1

Die Dateien bleiben dort, bis Sie sie selbst löschen. Sie können immer die Dateiliste von der Google Drive-API (ich benutze V3) abrufen und die Dateiliste mit ihrer ID abrufen und löschen, was auch immer Sie wollen. Sie können es noch nicht über das Web-Interface tun.

Im Folgenden ein Beispiel ist, C#, wie die Dateien Liste erhalten:

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; 

    } 

und wie eine bestimmte Datei zu löschen:

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

Dank @Hadar Ben David für Ihre detaillierte Antwort. Ich kenne die Anrufe, aber wenn ich all das lese, sollte ich mir sicher sein, dass die Dateien, wenn sie nicht gelöscht werden, unbegrenzt im Dienstkonto gespeichert werden, es sei denn, sie sind nicht mehr im Speicher. Richtig? Und wenn die Datei vom Dienstkonto gemeinsam genutzt wird, wird diese Datei auch auf dem Laufwerk des freigegebenen Benutzers gespeichert. Wird die Datei beim Löschen aus dem Dienstkonto auch aus dem Konto des freigegebenen Benutzers gelöscht? – Atihska

+0

@Aihska, Das Dienstkonto und das "normale" Konto sind zwei separate Einheiten. Sie können Dateien in beiden Konten unabhängig voneinander speichern. Außerdem kann das Dienstkonto nicht über die Webbenutzeroberfläche erreicht werden. Wenn Sie also Dateien über die Google API hochladen, müssen Sie diese ebenfalls per API löschen. Wenn Sie entscheiden, Informationen zwischen ihnen zu teilen, gehorchen beide der Freigabe-Richtlinie von Google: Der Besitzer einer Datei hat die volle Kontrolle über sie und die Datei wird Speicherplatz im Konto des Besitzers nehmen. Nur der Besitzer kann die Datei löschen. Der Redakteur kann seinen eigenen Zugriff auf diese Datei löschen, aber nicht die Datei selbst. –

+0

@Aihska, Derzeit beträgt das Kontingent des Dienstkontos 15 GB und es kann kein Upgrade durchgeführt werden, selbst wenn Sie das reguläre Konto aktualisieren. –

Verwandte Themen