2

您好,我正在从 Google Drive 下载一个 3 MB 的媒体文件。文件在 82 kb 后完成下载。它没有完全下载。我检查了小文件..但是对于任何大小的文件,下载大小保持不变..即 82 kb..

我正在尝试 GTMHTTPFetcher 下载..但出现错误

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
GTLDriveFile *file;
NSString *downloadedString = file.downloadUrl; // file is GTLDriveFile

NSLog(@"%@",file.downloadUrl);

GTMHTTPFetcher *fetcher = [self.driveService.fetcherService  fetcherWithURLString:downloadedString];

[fetcher beginFetchWithCompletionHandler:^(NSData *data, NSError *error)
{
    if (error == nil)
    {
        if(data != nil)
        {

            GTLDriveFile *file = [driveFiles objectAtIndex:indexPath.row];

            filename=file.title;

            NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
            filename = [[paths objectAtIndex:0]stringByAppendingPathComponent:[NSString stringWithFormat:@"%@",fileNames]];
            NSData* Data = [[NSData alloc]initWithContentsOfURL:targetURL];
            [Data writeToFile:filename atomically:YES];
            NSLog(@"my path:%@",filename);


        }
    }
    else
    {
        NSLog(@"Error - %@", error.description);
    }
 }];


// from the above code error is **Domain=com.google.GTMHTTPFetcher Code=-1 "The operation couldn’t be completed. (com.google.GTMHTTPFetcher error -1.)"**
4

3 回答 3

2

我没有解决方案,但我有一个诊断,还有下一步。如果多个文件(有些长,有些短)获取 82KB,请仔细检查您获取的 URL 是否正确。

看起来,当用户选择一个文件名时,您并没有获取正确的 URL,而是返回了 82KB 的数据,例如目录列表。

您可以通过从https://developers.google.com/drive/examples/objectivec运行 DrEdit 示例应用程序并打开 GMHTTPFetcher 日志记录来检查,(GMHTTPFetcher 是 NSURLConnection 的包装器)http://code.google.com/ p/gtm-http-fetcher/wiki/GTMHTTPFetcherIntroduction#HTTP_Logging

于 2013-08-08T14:26:52.893 回答
1

我认为你给出了超时间隔,这就是它在固定时间完成加载的原因。

于 2013-08-12T07:25:36.887 回答
0

[DriveSample 示例应用程序][1] 中的方法downloadFormatSelected:显示了如何进行经过身份验证的文件下载。

于 2013-08-08T21:45:00.800 回答