繁体   English   中英

如何使用 API flutter 覆盖谷歌驱动器中的文件

[英]How to overwrite files in google drive using API flutter

问题

我正在使用 Google Drive 来存储特定于应用程序的数据。 每当我想更新驱动器中的配置时,我都可以在购买的驱动器中读取和写入数据,会创建一个新文件而不是更新旧文件。

我尝试了以下方法:

  1. 给文件一个ID,但出现以下错误

未处理的异常:DetailedApiRequestError(状态:400,消息:提供的文件 ID 不可用。)

  1. 得到API生成的ID,用同样的代码,得到如下错误

未处理的异常:DetailedApiRequestError(状态:409,消息:具有提供的 ID 的文件已存在。)

我的代码:

    final signIn.GoogleSignInAccount account = await _googleSignIn.signIn();
    final authHeaders = await account.authHeaders;
    final authenticateClient = GoogleAuthClient(authHeaders);
    final driveApi = drive.DriveApi(authenticateClient);

    File _data = await _report.backupData(); //gets data to be overwriten
    final Stream<List<int>> mediaStream = _data.openRead();
    var media = new drive.Media(mediaStream, _data.lengthSync());
    var driveFile = new drive.File();
    driveFile.parents=['appDataFolder'];
    driveFile.name = "backup.mw";
    final result = await driveApi.files.create(driveFile, uploadMedia: media,);
    print("Upload result: ${result.id}");

您正在使用的代码执行files.create文件创建,每次运行时都会创建一个新文件。

最终结果 = await driveApi.files.create(driveFile, uploadMedia: media,);

如果要更新现有文件,则需要执行Files.update

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM