Je passe à l'API Google V3 et je ne suis pas en mesure de récupérer le flux vers le document. Objectif: Je souhaite transférer un document de Google Drive à un autre emplacement et j'ai besoin de récupérer le flux du fichier afin de l'utiliser pour le pousser vers la cible.exportlink pour Google lecteur api v3
Je n'arrive pas à trouver un moyen de le faire en utilisant Google Drive API V3!
En V2, j'ai utilisé:
downloadUrl = file.ExportLinks[(string)ExportTable[file.MimeType]];
Et puis je pourrais utiliser quelque chose comme:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(downloadUrl));
Je ne trouve pas l'équivalent en V3. Je essayé:
var getfile = _service.Files.Get(file.Id).Execute();
var request = _service.Files.Export(file.Id, getfile.MimeType);
System.IO.Stream stream = request.ExecuteAsStream();
Et le contenu du flux est:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotExportable",
"message": "Export only supports Google Docs."
} ],
"code": 403,
"message": "Export only supports Google Docs."
}
}
Bien sûr, nous ne voulons pas le télécharger dans un fichier local, puis générer un nouveau flux à partir du fichier mis en cache localement. Nous voulons rester entièrement en mémoire.
Merci pour votre aide
aura-t-il fonctionner si vous utilisez 'downloadURL = « https://drive.google.com/uc?id="+ fileId + "& authuser = 0 & export = download'? – Morfinismo
Cette information vous est-elle utile? https://stackoverflow.com/questions/46302540/google-drive-export-non- google-doc-file/46310449 # 46310449 – Tanaike
c'est C# pas java.J'ai utilisé .Télécharger à la place.Il a retourné un flux mais le fichier a été entièrement chargé dans la mémoire qui est mauvais.Google.Apis.Drive.v3.FilesResource. GetRequest getfile = _s ervice.Files.Get (fichier.Id); var flux = new MemoryStream(); getfile.Download (stream); flux.Position = 0; retour courant; – CloudAnywhere