Laden Sie eine JPG-Datei mit der Google Drive-API in Python hoch

Überblick

Laden Sie die Bilddatei mit Python auf Google Drive hoch. Implementieren Sie es leise gemäß Quickstart.

Vorbereitung

$ pip install --upgrade google-api-python-client 

Implementierung

Fügen Sie den Teil zum Hochladen von JPG hinzu, indem Sie auf Quickstart-Beispielcode verweisen.

Quellcode

Der folgende Code lädt eine Datei mit dem Namen "sample.jpg " in dasselbe Verzeichnis hoch, nachdem die Anmeldeinformationen abgerufen wurden.

google_drive_uploadjpg.py


# -*- coding: utf-8 -*-
from __future__ import print_function
import httplib2
import os

from apiclient import discovery
from oauth2client import client
from oauth2client import tools
from oauth2client.file import Storage

import requests

try:
    import argparse
    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
except ImportError:
    flags = None

#https im Schnellstart://www.googleapis.com/auth/drive.metadata.schreibgeschützt, aber keine Upload-Berechtigung
#Verwenden Sie Folgendes von FullScope, das auch hochgeladen werden kann(Ich habe nach SCOPE gesucht, das nur hochgeladen werden kann, aber ich konnte es nicht finden...)
SCOPES = 'https://www.googleapis.com/auth/drive'
CLIENT_SECRET_FILE = 'client_secret.json'
#Anwendungsname, der beim Erstellen des Projekts eingegeben wurde
APPLICATION_NAME = 'Drive API Quickstart'

def get_credentials():
    """
    (quickstart.Japanische Übersetzung von py)
Speichern Sie eine gültige Benutzerauthentifizierung(Lokal gespeicherte Anmeldeinformationen)Erhalten aus
Wenn nichts lokal gespeichert ist oder wenn die gespeicherten Anmeldeinformationen ungültig sind
Holen Sie sich neue Anmeldeinformationen mit OAuth2 Flow
    (Japanische Übersetzung bis hierher)

・ Wenn Sie es so ausführen, wie es ist, wird der Browser automatisch geöffnet und Sie werden zum Authentifizierungsbildschirm weitergeleitet.
・ Beim Ausführen von Python--noauth_local_Die URL wird auf der Konsole mit der Option Webserver angezeigt
Wenn Sie die angezeigte URL im Browser eingeben, wird der Authentifizierungsbildschirm angezeigt und Sie geben den Code ein, der nach der Authentifizierung auf der Konsole angezeigt wird.
    :return:Erhaltene Anmeldeinformationen
    """

    # ~/.credentials/drive-python-quickstart.Speichern Sie die Anmeldeinformationen in json
    home_dir = os.path.expanduser('~')
    credential_dir = os.path.join(home_dir, '.credentials')
    if not os.path.exists(credential_dir):
        os.makedirs(credential_dir)
    credential_path = os.path.join(credential_dir,
                                   'drive-python-quickstart.json')

    store = Storage(credential_path)
    credentials = store.get()
    if not credentials or credentials.invalid:
        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
        flow.user_agent = APPLICATION_NAME
        if flags:
            credentials = tools.run_flow(flow, store, flags)
        print('Storing credentials to ' + credential_path)
    return credentials

def upload_jpg(credentials, jpgfile):
    url = "https://www.googleapis.com/upload/drive/v3/files?uploadType=media"
    size = os.path.getsize(jpgfile)
    headers = {
        'Host':'www.googleapis.com',
        'Content-Type':'image/jpeg',
        'Content-Length': str(size),
        'Authorization': 'Bearer ' + credentials.access_token,
    }
    f = open(jpgfile, "rb")
    requests.post(url, headers=headers,data=f)

    return

def main():
    #Anmeldeinformationen abrufen
    credentials = get_credentials()

    #Jpgfile hochladen(REST)
    upload_jpg(credentials, "sample.jpg ")

if __name__ == '__main__':
    main()

Funktionsprüfung

python google_drive_uploadjpg.py

Wenn das Bild durch Ausführen auf Google Drive hochgeladen wurde, ist es in Ordnung.

Bonus: Mit Curl hochladen

Upload ist eine REST-API, sodass Sie auch mit Curl hochladen können.

uploadjpg_curl.sh


curl -X POST \
-H 'Host: www.googleapis.com' \
-H 'Content-Type: image/jpeg' \
-H 'Content-Length: number_of_bytes_in_file' \
-H 'Authorization: Bearer your_auth_token' \
-T sample.jpg \
https://www.googleapis.com/upload/drive/v3/files?uploadType=media

Geben Sie für number_of_bytes_in_file die Größe von sample.jpg ein. Geben Sie für Ihr_auth_token das in ~ / .credentials / drive-python-quickstart.json beschriebene access_token ein.

Vollständiger Quellcode

Ich habe es unten gestellt. Das Einfügen Ihrer client_secret.json in dasselbe Verzeichnis sollte funktionieren. https://github.com/yakan10/google_drive_uploadjpg

Ergänzung: Ablauf beim Erstellen eines neuen Projekts in der Google API-Konsole

Es ist fast eine japanische Übersetzung von Quickstart Step1.

  1. Gehen Sie zu Google APIs.
  2. Wählen Sie Projekt erstellen, um fortzufahren
  3. Gehen Sie zu "API aktiviert" -> Anmeldeinformationen
  4. Abbrechen mit "Anmeldeinformationen zum Projekt hinzufügen"
  5. Registerkarte "OAuth Consent Screen" -> Geben Sie Ihre E-Mail-Adresse und Ihren Dienstnamen ein, die den Benutzern angezeigt und gespeichert werden sollen
  6. Registerkarte Anmeldeinformationen-> Anmeldeinformationen erstellen-> OAuth-Client-ID
  7. Wählen Sie "Andere" und geben Sie "Drive API Quickstart" als Namen-> Erstellen ein
  8. Das OAuth-Client-Dialogfeld wird angezeigt, aber vorerst "OK".
  9. DL die Datei mit dem Download-Symbol neben der ID, die Sie zuvor in "OAuth 2.0 Client ID" erstellt haben.
  10. Nennen Sie die DL-Datei "client_secret.json".

Recommended Posts

Laden Sie eine JPG-Datei mit der Google Drive-API in Python hoch
Google Drive API-Tipps (Python)
Sprachdateierkennung durch Google Speech API v2 mit Python
[Python3] Google übersetzt Google Übersetzung ohne Verwendung von API
Laden Sie Google Drive-Dateien in Python herunter
Mausbedienung mit Windows-API in Python
Versuchen Sie es mit der Wunderlist-API in Python
Versuchen Sie, die Kraken-API mit Python zu verwenden
Tweet mit der Twitter-API in Python
Holen Sie sich Google Fit API-Daten in Python
Holen Sie sich Youtube-Daten in Python mithilfe der Youtube-Daten-API
Erstellen einer Google-Tabelle mit der Python / Google Data-API
[SEO] Flow / Beispielcode bei Verwendung der Google Analytics-API in Python
Laden Sie Bilder mit Python auf Google Drive hoch
Erstellen Sie eine GIF-Datei mit Pillow in Python
Führen Sie die Google Analytics-API (Core v3) in Python aus
Versuchen Sie es mit der BitFlyer Ligntning API in Python
Holen Sie sich die Bild-URL mithilfe der Flickr-API in Python
Lassen Sie uns Emotionen mithilfe der Emotions-API in Python beurteilen
Laden Sie Dateien mit Lambda (Python) auf Google Drive hoch.
Anonymer Upload von Bildern mit der Imgur-API (mit Python)
[WP REST API v2] Laden Sie Bilder mit Python hoch
Erstellen Sie eine MIDI-Datei in Python mit pretty_midi
Versuchen Sie, die ChatWork-API und die Qiita-API in Python zu verwenden
Versuchen Sie, die DropBox Core-API mit Python zu verwenden
Dateioperationen in Python
Dateiverarbeitung in Python
Google Drive-Datei verschieben
Evernote-API in Python
Dateimanipulation mit Python
C-API in Python 3
Google Drive API Dateiberechtigung festlegen (Berechtigungen für Google Drive-Dateien festlegen)
Erstellen Sie eine Kopie einer Google Drive-Datei aus Python
Registrieren Sie gemeinsam Daten im Firestore mithilfe der CSV-Datei in Python
Grundeinstellungen bei Verwendung der foursquare-API mit Python
Holen Sie sich LEAD-Daten mit der REST-API von Marketo in Python
[Python] Abrufen von Insight-Daten mithilfe der Google My Business-API
OpenVINO verwendet die Inference Engine Python API in einer PC-Umgebung
Erstellen Sie Ihre erste GDSII-Datei in Python mit gdspy
Sprachtranskriptionsverfahren mit Python und Google Cloud Speech API
Verwenden Sie die Such-API der National Parliament Library in Python
Hochladen auf ein freigegebenes Laufwerk mit Google Drive API V3
Als offene Daten mithilfe der CKAN-API in Python hochladen und automatisch mit Github-Aktionen verknüpfen
Hit Mastodons API in Python
Laden Sie Videos mit der YouTube-API hoch
Blender Python API in Houdini (Python 3)
Greifen Sie mit Python auf Google Drive zu
Übersetzt mit Googletrans in Python
Verwenden des Python-Modus in der Verarbeitung
Aufblasen von Textdaten durch erneute Übersetzung mithilfe der Google-Übersetzung in Python
Prognostizieren Sie das Geschlecht anhand des Namens mithilfe der Gender-API und von Pykakasi in Python
Google sucht mit Python nach der Zeichenfolge in der letzten Zeile der Datei
Stellen Sie die umgekehrte Geokodierung auf Japanisch mit der Python Google Maps-API bereit
Spielen Sie mit der YouTube Data API v3 mit dem Google API Python Client
GUI-Programmierung in Python mit Appjar
Abrufen der arXiv-API in Python
Vorsichtsmaßnahmen bei der Verwendung von Pit mit Python
Datenerfassung mit Python Googlemap API