https://cloud.google.com/iam/docs/creating-managing-service-account-keys?hl=ja Obtenez le fichier json en vous référant ici
from google.oauth2 import service_account
from googleapiclient.discovery import build
SCOPES = ['https://www.googleapis.com/auth/drive']
credentials = service_account.Credentials.from_service_account_file(JSON_FILE_PATH, scopes=SCOPE)
self.service = build('drive', 'v3', credentials=credentials)
Passons l'ID de fichier sous forme de tableau (c'est facile à oublier)
from apiclient.http import MediaFileUpload
#L'ID de fichier du répertoire se trouve à la fin du chemin
# https://drive.google.com/drive/folders/FILE_ID
file_metadata = {'name': 'photo.jpg', 'parents': [FILE_ID]}
media = MediaFileUpload('files/photo.jpg', mimetype='image/jpeg')
file = self.service.files().create(body=file_metadata,
media_body=media,
fields='id').execute()
Référez-vous à cette zone https://developers.google.com/drive/api/v3/mime-types https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
*
Renvoie toutes les informations
Passez les éléments requis séparés par des virgules
self.service.files().get(fileId=FILE_ID, fields="*").execute()
Probablement pas autorisé, mettons-le Si vous créez un répertoire privilégié à l'avance et que vous le téléchargez dessus, vous n'avez pas besoin de donner l'autorisation à chaque fois.
user_permission = {
'type': 'user',
'role': 'writer',
'domain': '[email protected]'
}
self.service.permissions().create(
fileId=FILE_ID,
body=user_permission,
fields='id',
)
Écrivons avec get buffer
import io
from apiclient.http import MediaIoBaseDownload
request = self.service.files().get_media(fileId=FILE_ID)
fh = io.BytesIO()
downloader = MediaIoBaseDownload(fh, request)
done = False
while done is False:
status, done = downloader.next_chunk()
print("Download %d%%." % int(status.progress() * 100))
with open(SAVE_FILE_PATH, "wb") as f:
f.write(fh.getbuffer())
Recommended Posts