Przenoszenie do kosza lub usuwanie plików i folderów

Pliki i foldery z Dysku Google możesz usuwać zarówno z Mojego dysku, jak i z dysków współdzielonych. Możesz to zrobić na 2 sposoby: przenieść do kosza lub usunąć.

Możesz przenieść pliki i foldery do kosza, a potem je przywrócić (w ciągu 30 dni od przeniesienia do kosza). Usunięcie plików i folderów powoduje ich trwałe usunięcie z Dysku. Jeśli usuniesz, przywrócisz albo trwale usuniesz wiele plików lub folderów naraz, zmiany mogą być widoczne dopiero po jakimś czasie.

Z tego przewodnika dowiesz się, jak usuwać pliki z Dysku.

Używanie parametru fields

Jeśli chcesz określić pola, które mają być zwracane w odpowiedzi, możesz ustawić fields parametr systemowy w dowolnej metodzie zasobu files. Jeśli pominiesz parametr fields, serwer zwróci domyślny zestaw pól właściwy dla danej metody. Na przykład metoda list zwraca tylko pola kind, id, name, mimeType i resourceKey dla każdego pliku. Aby zwrócić inne pola, przeczytaj artykuł Zwracanie określonych pól.

Kosz

Aby usunąć pliki z Dysku, możesz przenieść je do kosza. Pliki w koszu są automatycznie usuwane po 30 dniach. W razie potrzeby możesz przywrócić pliki z kosza w ciągu 30 dni.

Tylko właściciel pliku może przenieść go do kosza, ale inni użytkownicy mogą nadal uzyskiwać do niego dostęp w koszu właściciela, dopóki nie zostanie on trwale usunięty. Jeśli spróbujesz przenieść do kosza plik, którego nie jesteś właścicielem, otrzymasz błąd insufficientFilePermissions. Więcej informacji znajdziesz w artykule Uprawnienia.

Aby sprawdzić, czy jesteś właścicielem pliku, wywołaj get metodę w zasobie files z parametrem ścieżki fileId i parametrem fields ustawionym na pole logiczne ownedByMe. Pole ownedByMe nie jest wypełniane w przypadku plików na dyskach współdzielonych, ponieważ są one własnością dysku współdzielonego, a nie poszczególnych użytkowników. Więcej informacji o parametrze fields znajdziesz w artykule Używanie parametru fields.

Jeśli nie jesteś właścicielem pliku, ale nadal chcesz mieć jego kopię, wykonaj jedną z tych czynności:

  • Utwórz kopię pliku.
  • Skontaktuj się z właścicielem pliku i poproś o jego przywrócenie z kosza.

Przenoszenie pliku do kosza

Aby przenieść plik do kosza, użyj metody update w zasobie files z parametrem ścieżki fileId i ustaw pole logiczne trashed na true. Aby przenieść do kosza plik z dysku współdzielonego, musisz też ustawić parametr zapytania supportsAllDrives na true. Więcej informacji znajdziesz w artykule Implementowanie obsługi dysków współdzielonych.

Jeśli operacja się uda, treść odpowiedzi będzie zawierała instancję zasobu files.

Poniższy przykładowy kod pokazuje, jak użyć parametru fileId, aby oznaczyć plik jako przeniesiony do kosza:

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;

Zastąp FILE_ID parametrem fileId pliku, który chcesz przenieść do kosza.

Określanie właściwości pliku przeniesionego do kosza

Gdy plik zostanie przeniesiony do kosza, możesz pobrać dodatkowe właściwości pliku. Możesz użyć metody get w zasobie files z parametrem ścieżki fileId i jednym z tych pól przeniesionych do kosza w parametrze fields. Więcej informacji o parametrze fields znajdziesz w artykule Używanie parametru fields.

Te pola są wypełniane w przypadku wszystkich plików:

  • trashed: czy plik został przeniesiony do kosza, bezpośrednio lub z folderu nadrzędnego przeniesionego do kosza. Pamiętaj, że użycie pola trashed z metodą update ustawia stan pliku, a metoda get pobiera stan pliku.
  • explicitlyTrashed: czy plik został przeniesiony do kosza bezpośrednio, a nie rekurencyjnie z folderu nadrzędnego.

Te pola są wypełniane tylko w przypadku plików znajdujących się na dysku współdzielonym:

  • trashedTime: czas przeniesienia elementu do kosza w formacie daty i godziny RFC 3339. Jeśli używasz poprzedniej wersji interfejsu Drive API w wersji 2, to pole nazywa się trashedDate.
  • trashingUser: jeśli plik został przeniesiony do kosza bezpośrednio, jest to użytkownik, który go przeniósł.

Przywracanie pliku z kosza

Aby przywrócić plik z kosza, użyj metody update w zasobie files z parametrem ścieżki fileId i ustaw pole logiczne trashed na false. Aby przywrócić plik z dysku współdzielonego, musisz też ustawić parametr zapytania na true.supportsAllDrives Więcej informacji znajdziesz w artykule Implementowanie obsługi dysków współdzielonych.

Jeśli operacja się uda, treść odpowiedzi będzie zawierała instancję zasobu files.

Poniższy przykładowy kod pokazuje, jak użyć parametru fileId, aby oznaczyć plik jako przywrócony z kosza:

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;

Zastąp FILE_ID parametrem fileId pliku, który chcesz przywrócić z kosza.

Opróżnianie kosza

Możesz trwale usunąć wszystkie pliki z Dysku, które użytkownik przeniósł do kosza za pomocą emptyTrash metody w zasobie files. Aby opróżnić kosz dysku współdzielonego, musisz też ustawić parametr zapytania na identyfikator dysku współdzielonego.driveId

Jeśli operacja się uda, treść odpowiedzi będzie zawierała pusty obiekt JSON.

Poniższy przykładowy kod pokazuje, jak użyć parametru fileId, aby trwale usunąć wszystkie pliki w koszu:

Python

response = drive_service.files().emptyTrash().execute()

Node.js

 const response = await drive_service.files.emptyTrash({
    });
    return response;

Usuwanie

Możesz trwale usunąć plik z Dysku bez przenoszenia go do kosza. Gdy usuniesz plik, każda osoba, której go udostępniono, utraci do niego dostęp. Jeśli chcesz, aby inne osoby nadal miały dostęp do tego pliku, możesz przenieść własność na kogoś innego przed usunięciem.

Aby usunąć plik z dysku współdzielonego, użytkownik musi mieć rolę role=organizer w folderze nadrzędnym. Jeśli usuwasz folder, wszystkie należące do użytkownika elementy podrzędne również zostaną usunięte. Więcej informacji znajdziesz w artykule Uprawnienia.

Aby trwale usunąć plik należący do użytkownika bez przenoszenia go do kosza, użyj metody delete w zasobie files. Aby usunąć plik z dysku współdzielonego, musisz też ustawić parametr zapytania supportsAllDrives na true. Więcej informacji znajdziesz w artykule Implementowanie obsługi dysków współdzielonych.

Jeśli operacja się uda, treść odpowiedzi będzie zawierała pusty obiekt JSON.

Poniższy przykładowy kod pokazuje, jak użyć parametru fileId, aby usunąć plik:

Python

response = drive_service.files().delete(fileId="FILE_ID").execute()

Node.js

 const response = await drive_service.files.delete({
      fileId: 'FILE_ID'
    });
    return response;

Zastąp FILE_ID parametrem fileId pliku, który chcesz usunąć.

Uprawnienia

W tabeli poniżej znajdziesz uprawnienia wymagane do przenoszenia plików i folderów do kosza oraz ich usuwania. Pełną listę ról i operacji, które można wykonywać w ramach każdej z nich, znajdziesz w artykule Role i uprawnienia.

Dozwolona operacja owner organizer fileOrganizer writer commenter reader
Przenoszenie plików i folderów do kosza
Przywracanie plików i folderów z kosza
Opróżnianie kosza
Usuwanie pliku lub folderu
Usuwanie plików i folderów z dysku współdzielonego [*]
Usuwanie pustego dysku współdzielonego

Uprawnienia

Zasób files zawiera zbiór pól logicznych capabilities, które wskazują, jakie uprawnienia ma użytkownik do tego pliku.

Aby sprawdzić uprawnienia, wywołaj metodę get w zasobie files z parametrem ścieżki fileId i użyj jednego z tych pól capabilities w parametrze fields. Więcej informacji o fields parametrze znajdziesz w artykule Używanie parametru fields.

Te pola są wypełniane w przypadku wszystkich plików:

Te pola są wypełniane tylko w przypadku plików znajdujących się na dysku współdzielonym:

  • capabilities.canTrashChildren: czy bieżący użytkownik może przenieść do kosza elementy podrzędne tego folderu. Jeśli element nie jest folderem, wartość tego pola to false.
  • capabilities.canDeleteChildren: czy bieżący użytkownik może usunąć elementy podrzędne tego folderu. Jeśli element nie jest folderem, wartość tego pola to false.

Limity liczby plików i folderów

Pliki i foldery na Dysku, a także foldery na dyskach współdzielonych, mają pewne limity miejsca na dane.

Gdy limit elementów zostanie osiągnięty, jedynym sposobem na zwolnienie miejsca jest trwałe usunięcie elementów lub użycie innego konta. Przeniesienie plików do kosza nie wystarczy, aby zwolnić miejsce.

Więcej informacji o limitach plików i folderów znajdziesz w tych artykułach: