Interfejs Google Drive API umożliwia przesyłanie danych podczas tworzenia lub aktualizowania
File
Aby dowiedzieć się, jak utworzyć
pliku z samymi metadanymi, np. folderu, zapoznaj się z sekcją Tworzenie plików tylko z metadanymi.
Istnieją 3 rodzaje filmów, które możesz przesyłać:
Proste przesyłanie (
uploadType=media
): użyj tego typu przesyłania, aby przenieść plik małymi plikami multimedialnymi o rozmiarze maks. 5 MB – bez metadanych. Aby wykonać przeczytaj artykuł Przesyłanie prostego pliku.Przesyłanie wieloczęściowe (
uploadType=multipart
): „Użyj tego typu przesyłania, aby: prześlij mały plik (o maks. 5 MB) wraz z metadanymi opisującymi w jednym żądaniu. Informacje o przesyłaniu wieloczęściowym znajdziesz w sekcji Wykonywanie lub przesyłanie wieloczęściowe.Przesyłanie z możliwością wznowienia (
uploadType=resumable
): użyj tego typu przesyłania w przypadku dużych plików (większych niż 5 MB) i w przypadku wysokiego prawdopodobieństwa połączenia z siecią. np. podczas tworzenia pliku w aplikacji mobilnej. Można wznowić przesyłanie danych to także dobry wybór w przypadku większości aplikacji, ponieważ w przypadku małych plików przy minimalnym koszcie wynoszącym jedno dodatkowe żądanie HTTP na przesłanie. Informacje o przesyłaniu, które można wznowić, znajdziesz w sekcji Przesyłanie pliku z możliwością wznowienia prześlij.
Biblioteki klienta interfejsów API Google implementują co najmniej jeden z tych typów przesłanych plików. Skorzystaj z biblioteki klienta dokumentacji, gdzie znajdziesz dodatkowe informacje. korzystanie z każdego z nich.
Użyj kolumn PATCH
w porównaniu z: PUT
Dla przypomnienia: czasownik HTTP PATCH
obsługuje częściową aktualizację zasobów pliku
a czasownik HTTP PUT
obsługuje pełną zastępowanie zasobów. Pamiętaj, że PUT
może wprowadzić zmiany powodujące niezgodność przy dodawaniu nowego pola do istniejącego zasobu.
Podczas przesyłania zasobu pliku stosuj się do tych wskazówek:
- W pierwszym żądaniu użyj czasownika HTTP udokumentowanego w dokumentacji interfejsu API przesyłania z możliwością wznowienia lub w przypadku jedynej prośby o przesyłanie proste lub wieloczęściowe.
- Użyj
PUT
w przypadku wszystkich kolejnych próśb o wznawianie przesyłania, rozpoczęto wysyłanie żądania. Żądania te dotyczą przesyłania treści niezależnie .
Prześlij proste pliki
Aby to zrobić, użyj
files.create
z
uploadType=media
Oto jak to zrobić:
HTTP
Utwórz żądanie
POST
do identyfikatora URI metody /upload za pomocą zapytania parametruploadType=media
:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=media
Dodaj dane pliku do treści żądania.
Dodaj te nagłówki HTTP:
Content-Type
Ustaw typ multimediów MIME obiektu przesłano.Content-Length
Ustaw liczbę przesyłanych bajtów. Jeśli używasz fragmentacji transferu, ten nagłówek nie jest wymagany.
Wyślij prośbę. Jeśli żądanie zostanie zrealizowane, serwer zwróci kod stanu
HTTP 200 OK
wraz z metadanymi pliku. {HTTP}
Gdy przesyłasz proste pliki, tworzone są podstawowe metadane i niektóre atrybuty.
są wyodrębniane z pliku, np. typ MIME lub modifiedTime
. Za pomocą
łatwe przesyłanie w przypadku
małych plików i metadanych
są ważne.
Przesyłanie wieloczęściowe
Wieloczęściowe żądanie przesyłania umożliwia przesyłanie metadanych i danych w tym samym użytkownika. Wybierz tę opcję, jeśli przesyłane dane są na tyle małe, że można je przesłać ponownie. w całości, w przypadku problemów z połączeniem.
Aby przeprowadzić przesyłanie wieloczęściowe, użyj
files.create
z
uploadType=multipart
Poniżej znajdziesz instrukcje przesyłania wieloczęściowego:
Java
Python
Node.js
PHP
.NET
HTTP
Utwórz żądanie
POST
do identyfikatora URI metody /upload za pomocą zapytania parametruploadType=multipart
:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=multipart
Utwórz treść żądania. Sformatuj treść zgodnie z typ treści multipart/related content type RFC 2387, składający się z 2 części:
- Metadane Metadane muszą być pierwsze i mieć
Content-Type
nagłówek został ustawiony naapplication/json;
charset=UTF-8
. Dodaj metadane pliku w formacie JSON. - Multimedia. Plik multimedialny musi być w drugiej kolejności i musi mieć nagłówek
Content-Type
dowolnego typu MIME. Dodaj dane pliku do części multimedialnej.
Wskaż każdą część ciągiem znaków granicy poprzedzonym dwoma łącznikami. W dodaj dwa łączniki za ostatnim ciągiem znaków granicy.
- Metadane Metadane muszą być pierwsze i mieć
Dodaj te nagłówki HTTP najwyższego poziomu:
Content-Type
Ustaw jakomultipart/related
i uwzględnij granicę którego używasz do identyfikowania różnych części żądania. Dla: przykład:Content-Type: multipart/related; boundary=foo_bar_baz
Content-Length
Ustaw łączną liczbę bajtów w treści żądania.
Wyślij prośbę.
Aby utworzyć lub zaktualizować tylko część metadanych, bez powiązanych danych:
wyślij żądanie POST
lub PATCH
do standardowego punktu końcowego zasobu:
https://www.googleapis.com/drive/v3/files
Jeśli żądanie zostanie zrealizowane,
serwer zwraca kod stanu HTTP 200 OK
wraz z
metadanych.
Podczas tworzenia plików powinny one określić rozszerzenie pliku w następujący sposób: name
. Na przykład podczas tworzenia pliku JPEG zdjęcia można określić
np. "name": "photo.jpg"
. Kolejne wywołania files.get
zwracają właściwość fileExtension
tylko do odczytu
zawierający rozszerzenie określone pierwotnie w polu name
.
Wykonaj przesyłanie, które można wznowić
Przesyłanie z możliwością wznowienia umożliwia wznowienie operacji przesyłania po nawiązaniu komunikacji. zakłóca przepływ danych. Ponieważ nie trzeba ponownie uruchamiać dużych plików przesyłanie plików od początku, możliwość wznowienia przesyłania również może zmniejszyć przepustowość wykorzystanie zasobów w przypadku awarii sieci.
Przesyłanie z możliwością wznowienia przydaje się, gdy rozmiary plików mogą się znacznie różnić lub ma stały limit czasowy dla żądań (takich jak zadania wykonywane w tle systemu operacyjnego mobilnego określonych żądań App Engine). Możesz też użyć funkcji wznawiania przesyłania w przypadku chcesz wyświetlić pasek postępu przesyłania.
Przesyłanie z możliwością wznowienia składa się z kilku głównych etapów:
- Wyślij pierwsze żądanie i pobierz identyfikator URI sesji możliwej do wznowienia.
- Przesyłanie danych i monitorowanie stanu przesyłania.
- (Opcjonalnie) Jeśli przesyłanie zostanie zakłócone, wznów je.
Wyślij wstępne żądanie
Aby rozpocząć przesyłanie, które można wznowić, użyj
files.create
z
uploadType=resumable
HTTP
Utwórz żądanie
POST
do identyfikatora URI metody /upload za pomocą zapytania parametruploadType=resumable
:POST https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable
Jeśli żądanie inicjowania zakończy się powodzeniem, odpowiedź będzie zawierać dyrektywę
200 OK
kodu stanu HTTP. Dodatkowo zawiera nagłówekLocation
, który określa identyfikator URI sesji możliwej do wznowienia:HTTP/1.1 200 OK Location: https://www.googleapis.com/upload/drive/v3/files?uploadType=resumable&upload_id=xa298sd_sdlkj2 Content-Length: 0
Zapisz identyfikator URI sesji z możliwością wznawiania, aby móc przesłać dane pliku i wykonać zapytanie stan przesyłania. Identyfikator URI sesji z możliwością wznowienia wygasa po tygodniu.
Jeśli masz metadane pliku, dodaj je do treści żądania w formacie JSON. W przeciwnym razie treść żądania pozostaw pustą.
Dodaj te nagłówki HTTP:
X-Upload-Content-Type
Opcjonalna. Ustaw typ MIME pliku które są przesyłane w kolejnych żądaniach. Jeśli danych nie zostały określone w metadanych ani za pomocą tego nagłówka, obiekt jest obsługiwany jakoapplication/octet-stream.
X-Upload-Content-Length
Opcjonalna. Ustaw liczbę bajtów i przekazywane w kolejnych żądaniach.Content-Type
Wymagany, jeśli masz metadane pliku. Ustaw naapplication/json;
,charset=UTF-8
.Content-Length
Wymagany, chyba że używasz kodowania fragmentowego transferu. Ustaw liczbę bajtów w treści tego początkowego żądania.
Wyślij prośbę. Jeśli żądanie zainicjowania sesji zostanie zrealizowane, odpowiedź zawiera kod stanu
200 OK HTTP
. Ponadto odpowiedź zawiera nagłówekLocation
, który określa identyfikator URI sesji możliwej do wznowienia. Identyfikator URI sesji z możliwością wznawiania służy do przesyłania danych plików i wysyłania zapytań do stanu przesyłania. Identyfikator URI sesji z możliwością wznowienia wygasa po tygodniu.Skopiuj i zapisz adres URL sesji, którą można wznowić.
Przejdź do sekcji Prześlij treści.
Prześlij treści
Są 2 sposoby przesyłania pliku z sesją, którą można wznowić:
- Przesyłanie treści w jednym żądaniu: użyj tej metody, jeśli plik może być przesyłane w jednym żądaniu, jeśli nie ma określonego limitu czasowego dla lub nie trzeba wyświetlać wskaźnika postępu przesyłania. Ten jest najlepsze, ponieważ wymaga mniejszej liczby żądań i zapewnia skuteczność reklam.
Prześlij treści w kilku fragmentach: użyj tej metody, jeśli musisz. zmniejsza ilość danych przesyłanych w jednym żądaniu. Może być konieczne aby ograniczyć ilość przesyłanych danych w przypadku użytkowników o określonym czasie tak jak w przypadku określonych klas żądań App Engine. Ta metoda jest przydatna również wtedy, gdy musisz podać dostosowany wskaźnik, aby pokazuje postęp przesyłania.
HTTP – pojedyncze żądanie
- Utwórz żądanie
PUT
do identyfikatora URI sesji możliwej do wznowienia. - Dodaj dane pliku do treści żądania.
- Dodaj nagłówek HTTP Content-Length ustawiony na liczbę bajtów w pliku.
- Wyślij prośbę. Jeśli prośba o przesłanie zostanie przerwana lub otrzymasz
na odpowiedź
5xx
, wykonaj czynności opisane w sekcji Wznawianie przerwanego przesyłania.
HTTP – wiele żądań
Utwórz żądanie
PUT
do identyfikatora URI sesji możliwej do wznowienia.Dodaj dane fragmentu do treści żądania. Utwórz fragmenty w wielokrotnościach Rozmiar 256 KB (256 x 1024 bajty) z wyjątkiem ostatniego zakończonego fragmentu przesyłanie. Staraj się, by rozmiar fragmentu był jak największy, efektywne.
Dodaj te nagłówki HTTP:
Content-Length
Ustaw liczbę bajtów w bieżącym fragmencie.Content-Range
Ustaw, aby pokazywać, jakie bajty w przesyłanym pliku. Dla: przykładowyContent-Range: bytes 0-524287/2000000
pokazuje, że przesyłasz plik cookie pierwszych 524 288 bajtów (256 x 1024 x 2) do pliku o rozmiarze 2 000 000 bajtów.
Wyślij żądanie i przetwórz odpowiedź. Jeśli prośba o przesłanie jest lub jeśli otrzymasz odpowiedź
5xx
, postępuj zgodnie z procedurą opisaną w Wznawianie przerwanego przesyłaniaPowtórz kroki od 1 do 4 dla każdego fragmentu, który pozostanie w pliku. Użyj
Range
w odpowiedzi, aby określić miejsce rozpoczęcia następnego fragmentu. Nie zakładaj, że serwer otrzymał wszystkie bajty wysłane w poprzednim żądaniu.
Po zakończeniu przesyłania całego pliku otrzymasz komunikat 200 OK
lub
Odpowiedź 201 Created
wraz z wszelkimi metadanymi powiązanymi z zasobem.
Wznawianie przerwanego przesyłania
Jeśli żądanie przesyłania zostanie zakończone przed odpowiedzią lub otrzymasz odpowiedź 503
Service Unavailable
, musisz wznowić przerwane przesyłanie.
HTTP
Aby poprosić o stan przesyłania, utwórz pustą prośbę
PUT
do identyfikator URI sesji do wznowienia.Dodaj nagłówek
Content-Range
, aby wskazać, że bieżąca pozycja w tabeli nieznany plik. Na przykład ustawContent-Range
na*/2000000
, jeśli całkowita długość pliku to 2 000 000 bajtów. Jeśli nie znasz pełnego rozmiaru ustawContent-Range
na*/*
.Wyślij prośbę.
Przetwórz odpowiedź:
- Odpowiedź
200 OK
lub201 Created
wskazuje, że przesyłanie zostało przesłane nie są wymagane żadne dodatkowe działania. - Odpowiedź
308 Resume Incomplete
oznacza, że musisz kontynuować aby przesłać plik. - Odpowiedź
404 Not Found
wskazuje, że sesja przesyłania wygasła i przesyłanie należy rozpocząć jeszcze raz od początku.
- Odpowiedź
Jeśli otrzymasz odpowiedź
308 Resume Incomplete
, przetwórz NagłówekRange
odpowiedzi określający, które bajty odebrał serwer. Jeśli odpowiedź nie ma nagłówkaRange
, nie odebrano żadnych bajtów. Na przykład nagłówekRange
o wartościbytes=0-42
wskazuje, że pierwszy Odebrano 43 bajty pliku i że następny fragment do przesłania będzie zaczynać się od bajtu 44.Wiesz już, gdzie wznowić przesyłanie, możesz więc przejść dalej. zaczynając od następnego bajtu. Dodaj
Content-Range
wskazujący, jaką część pliku należy wysłać. Dla: przykładContent-Range: bytes 43-1999999
wskazuje, że wysyła bajty od 44 do 2 000 000.
Postępowanie w przypadku błędów przesyłania multimediów
Podczas przesyłania multimediów postępuj zgodnie z tymi sprawdzonymi metodami postępowania z błędami:
- W przypadku
5xx
błędów wznów lub spróbuj ponownie przesyłać pliki, które nie powiodły się z powodu połączenia . Więcej informacji o postępowaniu z błędami5xx
znajdziesz tutaj Błędy 500, 502, 503 i 504. - W przypadku
403 rate limit
błędów spróbuj przesłać ponownie. Więcej informacji na temat: obsługa błędów403 rate limit
, zapoznaj się z artykułem Błąd 403:rateLimitExceeded
. - Uruchom ponownie wszelkie błędy
4xx
(w tym403
) podczas, gdy przesyłanie można wznowić przesyłanie. Te błędy oznaczają, że sesja przesyłania wygasła i należy ją uruchomione ponownie przez żądanie nowego identyfikatora URI sesji. Sesje przesyłania wygasają także po tygodniu braku aktywności.
Importowanie do Dokumentów Google
Podczas tworzenia pliku na Dysku warto przekonwertować plik do typu pliku Google Workspace, takiego jak Dokumenty Google, Arkusze. Możesz na przykład przekształcić dokument z ulubionego edytora tekstu do Dokumentów, aby móc korzystać funkcje zabezpieczeń.
Aby przekonwertować plik na określony typ pliku Google Workspace, podaj
Google Workspace mimeType
podczas tworzenia pliku.
Poniżej znajdziesz instrukcje konwertowania pliku CSV na arkusz Google Workspace:
Java
Python
Node.js
PHP
.NET
Aby zobaczyć, czy dostępna jest konwersja, przed utworzeniem pliku sprawdź tablicę importFormats
zasobu about
.
Obsługiwane konwersje są dostępne dynamicznie w tej tablicy. Niektóre typowe
formaty importu są następujące:
Z | Do |
---|---|
Microsoft Word, OpenDocument Text, HTML, RTF, zwykły tekst | Dokumenty Google |
Microsoft Excel, arkusz kalkulacyjny OpenDocument, CSV, TSV, zwykły tekst | Arkusze Google |
Microsoft PowerPoint, prezentacja OpenDocument | Prezentacje Google |
JPEG, PNG, GIF, BMP, PDF | Dokumenty Google (umieszcza obraz w dokumencie) |
Zwykły tekst (specjalny typ MIME), JSON | Google Apps Script |
Gdy przesyłasz multimedia i konwertujesz je w trakcie żądania update
na
Dokumentów, Arkuszy lub Prezentacji,
pełna treść dokumentu jest zastąpiona.
Gdy konwertujesz obraz na plik Dokumentów, Dysk używa
Optyczne rozpoznawanie znaków (OCR) do konwertowania obrazu na tekst. Dostępne opcje
Popraw jakość algorytmu OCR przez określenie odpowiedniego BCP
47 kod języka
w
ocrLanguage
.
. Wyodrębniony tekst pojawi się w dokumencie obok umieszczonego obrazu.
Używanie wcześniej wygenerowanego identyfikatora do przesyłania plików
Interfejs Drive API umożliwia pobranie listy wstępnie wygenerowanych identyfikatorów plików,
są używane do przesyłania i tworzenia zasobów. Prośby o przesłanie i utworzenie plików
użyć wstępnie wygenerowanych identyfikatorów. Ustaw pole id
w metadanych pliku.
Aby utworzyć wstępnie wygenerowane identyfikatory, wywołaj
files.generateIds
z
liczby identyfikatorów do utworzenia.
Jeśli napotkasz nieokreślone problemy, możesz bezpiecznie ponawiać próby przesłania za pomocą wstępnie wygenerowanych identyfikatorów.
błąd serwera lub przekroczenie limitu czasu. Jeśli plik został utworzony, kolejne
ponownych prób zwraca błąd HTTP 409
i nie tworzą duplikatów plików.
Zdefiniuj tekst możliwy do indeksowania dla nieznanych typów plików
Użytkownicy mogą wyszukiwać treść dokumentów za pomocą interfejsu Dysku. Możesz też
użyj files.list
i fullText
do wyszukiwania treści z aplikacji. Aby uzyskać więcej informacji, przeczytaj artykuł Wyszukiwanie
plików i folderów.
Dysk automatycznie indeksuje dokumenty na potrzeby wyszukiwania, gdy
rozpoznaje typ plików, w tym dokumenty tekstowe, pliki PDF, obrazy z tekstem oraz
innych popularnych typów. Jeśli Twoja aplikacja zapisuje inne typy plików (np. rysunki,
wideo i skróty), możesz zwiększyć wykrywalność, dodając
tekst możliwy do zindeksowania w polu contentHints.indexableText
pliku.
Więcej informacji o tekście możliwym do indeksowania znajdziesz w artykule Zarządzanie plikiem metadanych.