Ich verwende Python 2.7 und service account, um eine Datei in Google Drive basierend auf ihrem Titel in einen anderen Ordner zu kopieren. Dazu muss ich fünf (5!) Befehle ausführen:Datei mit Google Drive API in einen bestimmten übergeordneten Ordner kopieren?
- Datei-ID nach Titel suchen. (
files().list
) - Suche übergeordneten Ordner ID nach Titel (
files().list
) - Copy-Datei (
files().copy
) - Übertragung Eigentum an einem realen Konto (
files().insert
) - Umzug in den übergeordneten Ordner. (
parents().insert
)
Das alles funktioniert, aber ich möchte die Anzahl der Anrufe reduzieren und erste bedeutet, dass die ID des Cachen also muss ich files().list
nicht nennen. Das nächste, was ich versuche zu tun, und speziell, wo ich mit dieser Frage bin, ist, wie Sie den übergeordneten Ordner innerhalb der files().copy
Befehl festlegen. Die Dokumentation enthält einen optionalen parents
Parameter, der folgendermaßen beschrieben wird:
Sammlung von übergeordneten Ordnern, die diese Datei enthalten. Wenn Sie dieses Feld einstellen, wird die Datei in alle vorgesehenen Ordner eingefügt. Wenn keine Ordner bereitgestellt werden, wird die Datei beim Einfügen in den Standardstammordner gestellt.
Obwohl es nicht sagen, ich weiß, es bedeutet, Eltern IDs denn das ist, was überall sonst verwendet wird. Das Festlegen dieses Arrays in der Client-Bibliothek führt jedoch nicht zu einem Effekt: Kein Fehler und die Datei befindet sich definitiv nicht im richtigen Ordner.
newfile = {'title': newtitle, 'parents' : [ parentFolderId ]}
service.files().copy(fileId=originalId, body=newfile).execute()
Hat jemand with this kein Glück gehabt? Gibt es noch etwas, das mir fehlt?
Bonus: Eigentum im Kopierbefehl übertragen? Vielleicht könnte mein Dienstkonto mich verfälschen?
+1 Guter Fang! Das rettete mich nur vor einigen Problemen :) –
Wenn es Kinderordner gibt, was kann ich tun? –