我正在切換到Google驅動器V3 apis,我無法檢索到文檔的流。exportlink for Google Drive api v3
目標:我想將谷歌驅動器文檔推送到另一個位置,我需要檢索文件流以便使用它將其推送到目標。
我找不到使用Google Drive API V3的方法!
在V2,我用:
downloadUrl = file.ExportLinks[(string)ExportTable[file.MimeType]];
然後我可以使用類似:
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri(downloadUrl));
我不覺得在V3的等價物。 我想:
var getfile = _service.Files.Get(file.Id).Execute();
var request = _service.Files.Export(file.Id, getfile.MimeType);
System.IO.Stream stream = request.ExecuteAsStream();
和流的內容是:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "fileNotExportable",
"message": "Export only supports Google Docs."
} ],
"code": 403,
"message": "Export only supports Google Docs."
}
}
當然,我們不希望把它從文件下載到本地文件,然後生成一個新的流本地緩存。我們希望完全留在記憶中。
感謝您的幫助
請問,如果你用'它的工作downloadUrl =「HTTPS:/ /drive.google.com/uc?id="+ fileId +「&authuser = 0&export = download'? – Morfinismo
此信息對您有用嗎?https://stackoverflow.com/questions/46302540/google-drive-export-non- google-doc-file/46310449#46310449 – Tanaike
這是c#不是java,我用.Download 取而代之,它返回了一個流,但是文件已經被完全加載到內存中,不好用。 GetRequest getfile = _s ervice.Files.Get(file.Id); var stream = new MemoryStream(); getfile.Download(stream); stream.Position = 0; return stream; – CloudAnywhere