Téléchargez le fichier image sur Google Drive avec python. Implémentez tranquillement selon Quickstart.
$ pip install --upgrade google-api-python-client
Ajoutez la pièce à importer jpg en vous référant à Exemple de code de démarrage rapide.
Le code ci-dessous télécharge un fichier appelé "sample.jpg " dans le même répertoire après avoir obtenu les informations d'identification.
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 dans le démarrage rapide://www.googleapis.com/auth/drive.metadata.autorisation en lecture seule mais pas de téléchargement
#Utilisez les éléments suivants de FullScope qui peuvent également être téléchargés(J'ai recherché SCOPE qui ne peut que télécharger, mais je ne l'ai pas trouvé...)
SCOPES = 'https://www.googleapis.com/auth/drive'
CLIENT_SECRET_FILE = 'client_secret.json'
#Nom de l'application saisi lors de la création du projet
APPLICATION_NAME = 'Drive API Quickstart'
def get_credentials():
"""
(quickstart.Traduction japonaise de py)
Stocker l'authentification utilisateur valide(Informations d'identification stockées localement)Obtenir de
Si rien n'est stocké localement ou si les informations d'identification stockées ne sont pas valides
Obtenez de nouvelles informations d'identification avec le flux OAuth2
(Traduction japonaise jusqu'ici)
・ Si vous l'exécutez tel quel, le navigateur s'ouvrira automatiquement et vous serez redirigé vers l'écran d'authentification.
・ Lors de l'exécution de python--noauth_local_L'URL est affichée sur la console avec l'option serveur Web
Lorsque vous entrez l'URL affichée dans le navigateur, l'écran d'authentification s'affiche et entrez le code qui apparaît après l'authentification sur la console.
:return:Obtention des informations d'identification
"""
# ~/.credentials/drive-python-quickstart.Enregistrer les informations d'identification dans 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():
#Obtenez des identifiants
credentials = get_credentials()
#Téléchargement de jpgfile(REST)
upload_jpg(credentials, "sample.jpg ")
if __name__ == '__main__':
main()
python google_drive_uploadjpg.py
Si l'image a été téléchargée sur Google Drive lors de l'exécution, tout va bien.
Upload est une API REST, vous pouvez donc également télécharger avec curl.
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
Pour number_of_bytes_in_file, entrez la taille de sample.jpg. Pour your_auth_token, entrez le access_token décrit dans ~ / .credentials / drive-python-quickstart.json.
Je l'ai mis ci-dessous. Mettre votre client_secret.json dans le même répertoire devrait fonctionner. https://github.com/yakan10/google_drive_uploadjpg
Il s'agit presque d'une traduction japonaise de Quickstart Step1.
Recommended Posts