如何在 google drive sdk 中下载 google 个文件?
How to download google files in google drive sdk?
这样我就成功下载了一张图片:
GTLServiceDrive *drive = ...;
GTLDriveFile *file = ...;
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media",file.identifier];
GTMSessionFetcher *fetcher = [drive.fetcherService fetcherWithURLString:url];
[fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
if (error == nil) {
NSLog(@"Retrieved file content");
// Do something with data
} else {
NSLog(@"An error occurred: %@", error);
}
}];
google drive sdk 的文档告诉我下载一个 pdf 或 google 文档应该使用另一个 url:
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@/export?alt=media&mimeType=application/pdf",file.identifier];
但是我失败了,错误是这样的:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}
在下载文件时,请确保您的应用程序必须获得允许读取文件内容的范围的授权。例如,使用 drive.readonly.metadata 范围的应用将无权下载文件内容。具有编辑权限的用户可以通过将 viewersCanCopyContent 字段设置为 true 来限制 read-only 用户的下载。
还有另一种方法可以使用部分下载来下载文件。它涉及仅下载文件的指定部分。您可以使用范围为 header.
的字节范围来指定要下载的文件部分
此 SO question 正在使用部分下载。我觉得可以帮到你。
此代码演示了如何下载 PDF 格式的 Google 文档。
String fileId = "1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo";
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().export(fileId, "application/pdf")
.executeMediaAndDownloadTo(outputStream);
这样我就成功下载了一张图片:
GTLServiceDrive *drive = ...;
GTLDriveFile *file = ...;
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@?alt=media",file.identifier];
GTMSessionFetcher *fetcher = [drive.fetcherService fetcherWithURLString:url];
[fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error) {
if (error == nil) {
NSLog(@"Retrieved file content");
// Do something with data
} else {
NSLog(@"An error occurred: %@", error);
}
}];
google drive sdk 的文档告诉我下载一个 pdf 或 google 文档应该使用另一个 url:
NSString *url = [NSString stringWithFormat:@"https://www.googleapis.com/drive/v3/files/%@/export?alt=media&mimeType=application/pdf",file.identifier];
但是我失败了,错误是这样的:
{
"error": {
"errors": [
{
"domain": "global",
"reason": "badRequest",
"message": "Bad Request"
}
],
"code": 400,
"message": "Bad Request"
}
}
在下载文件时,请确保您的应用程序必须获得允许读取文件内容的范围的授权。例如,使用 drive.readonly.metadata 范围的应用将无权下载文件内容。具有编辑权限的用户可以通过将 viewersCanCopyContent 字段设置为 true 来限制 read-only 用户的下载。
还有另一种方法可以使用部分下载来下载文件。它涉及仅下载文件的指定部分。您可以使用范围为 header.
的字节范围来指定要下载的文件部分此 SO question 正在使用部分下载。我觉得可以帮到你。
此代码演示了如何下载 PDF 格式的 Google 文档。
String fileId = "1ZdR3L3qP4Bkq8noWLJHSr_iBau0DNT4Kli4SxNc2YEo";
OutputStream outputStream = new ByteArrayOutputStream();
driveService.files().export(fileId, "application/pdf")
.executeMediaAndDownloadTo(outputStream);