【问题标题】:Swift Google Drive downloading fileSwift Google Drive 下载文件
【发布时间】:2020-09-17 19:18:40
【问题描述】:

我不知道如何在 Swift 中下载 Google Drive 文件。我按照Google Objective-C API 'GTL' with Swift 的修改后的快速入门进行操作,并且成功了。我无法在下载文件时从谷歌驱动 API 翻译目标 C 代码。我四处寻找,找不到任何东西。我怎样才能让它工作?

【问题讨论】:

    标签: swift google-drive-api


    【解决方案1】:

    您可以使用此功能在 Swift 中通过 Google Drive API 下载文件:

    func downloadFile(file: GTLDriveFile){
        let url = "https://www.googleapis.com/drive/v3/files/\(file.identifier!)?alt=media"
    
        let fetcher = drive.fetcherService.fetcherWithURLString(url)
    
        fetcher.beginFetchWithDelegate(
            self,
            didFinishSelector: #selector(ViewController.finishedFileDownload(_:finishedWithData:error:)))
    }
    

    (在这种情况下,driveGTLServiceDrive - 与 Documentation 相同)

    然后你需要实现函数finishedFileDownload,一旦下载完成就会被调用:

    func finishedFileDownload(fetcher: GTMSessionFetcher, finishedWithData data: NSData, error: NSError?){
        if let error = error {
            //show an alert with the error message or something similar
            return
        }
    
        //do something with data (save it...)
    }
    

    【讨论】:

    • 文件被修改时文件标识符是否会改变?
    • @bluenowhere 不,相同的文件将始终具有相同的标识符,即使您修改它,例如发送update 请求。
    【解决方案2】:

    Swift 5 的实际情况。

    func download(file: GTLRDrive_File) {
        let url = "https://www.googleapis.com/drive/v3/files/\(file.identifier!)?alt=media"
        let fetcher = drive.fetcherService.fetcher(withURLString: url)
        fetcher.beginFetch(completionHandler: { data, error in
            if let error = error {
                print(error.localizedDescription)
            }
    
            //Do something with data
        })
    }
    

    【讨论】:

    • 此解决方案不适用于我,如果您知道如何在 swift 或 Objective-c 中下载驱动器文件,请帮助我
    • 实际上我的代码已运行,但只收到少量数据,但实际上我的文件是 200 mb 或更多
    • 对不起,我帮不了你,我下载了大约 150 mb 的文件,没有任何问题。也许您的问题出在网络连接或其他方面。尝试用您的代码提出新问题
    • 当然,但我得到了解决方案。它就像魅力一样工作
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-16
    • 2015-11-17
    • 2015-02-06
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多