https://cloud.google.com/iam/docs/creating-managing-service-account-keys?hl=ja Holen Sie sich die JSON-Datei, indem Sie hier verweisen
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)
Lassen Sie uns die Datei-ID als Array übergeben (es ist leicht zu vergessen)
from apiclient.http import MediaFileUpload
#Die Datei-ID des Verzeichnisses befindet sich am Ende des Pfads
# 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()
Beziehen Sie sich auf diesen Bereich https://developers.google.com/drive/api/v3/mime-types https://developer.mozilla.org/ja/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types
*
Gibt alle Informationen zurück
Übergeben Sie die erforderlichen Elemente durch Kommas getrennt
self.service.files().get(fileId=FILE_ID, fields="*").execute()
Wahrscheinlich nicht autorisiert, ziehen wir es an Wenn Sie im Voraus ein privilegiertes Verzeichnis erstellen und in dieses hochladen, müssen Sie nicht jedes Mal eine Berechtigung erteilen.
user_permission = {
'type': 'user',
'role': 'writer',
'domain': '[email protected]'
}
self.service.permissions().create(
fileId=FILE_ID,
body=user_permission,
fields='id',
)
Schreiben wir mit 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