Laden Sie die Bilddatei mit Python auf Google Drive hoch. Implementieren Sie es leise gemäß Quickstart.
$ pip install --upgrade google-api-python-client
Fügen Sie den Teil zum Hochladen von JPG hinzu, indem Sie auf Quickstart-Beispielcode verweisen.
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()
python google_drive_uploadjpg.py
Wenn das Bild durch Ausführen auf Google Drive hochgeladen wurde, ist es in Ordnung.
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.
Ich habe es unten gestellt. Das Einfügen Ihrer client_secret.json in dasselbe Verzeichnis sollte funktionieren. https://github.com/yakan10/google_drive_uploadjpg
Es ist fast eine japanische Übersetzung von Quickstart Step1.
Recommended Posts