是否可以在Google驱动器上创建可见文件?

问题描述 投票:0回答:1

我正在使用Drive Api使用户上传文件并将其存储在其Google Drive帐户中。正如我现在所看到的,用户上传的每个文件都隐藏在我的应用程序下,没有我的应用程序就无法显示在驱动器上。我希望他们像Google云端硬盘上的常规图片,视频等一样显示他们上传的文件。

是否有实现此功能的方法?

编辑:

我想为这个问题添加解决方案,以帮助访问此页面的程序员。

让我们创建我们要在其中存储文件的文件夹:

    var client = GoogleHttpClient(await account.authHeaders);
    var drive = ga.DriveApi(client);
    ga.File fileMetadata = ga.File();
    fileMetadata.name = "ourFolderName";
    fileMetadata.mimeType = "application/vnd.google-apps.folder";

    var response = await drive.files.create(fileMetadata);
    print("response file id: ${response.id}");
    writeFolderID(response.id);

writeFolderID方法包含一些将ID写入本地db以在应用程序中进一步使用的代码。

[当我尝试上传内容时,我必须将FolderID添加到File变量中的file.parents字段中。然后在驱动器中创建文件。


    var client = GoogleHttpClient(await googleSignInAccount.authHeaders);
    var drive = ga.DriveApi(client);
    ga.File fileToUpload = ga.File();
    var file = await FilePicker.getFile();


    String folderID = await getFolderID("folderKey"); //getFolderID is a function that retrieves folderID we have created before.
// In order to upload a file to a folder in drive api, we have to save the folderID at creation moment. 


    fileToUpload.parents = [folderID];
    fileToUpload.name = path.basename(file.absolute.path);
    var response = await drive.files.create(
    fileToUpload,
    uploadMedia: ga.Media(file.openRead(), file.lengthSync()),
    );

之后,您可以轻松地在Google云端硬盘中显示“ ourFolderName”,并可以进行互动。

flutter google-drive-api
1个回答
0
投票

我自己找到了解决方案。当我指定父文件夹和元数据时,应该将父文件夹留空,如变量说明中所述。

包含该文件的父文件夹的ID。如果未在创建请求中指定,则该文件将直接放置在用户的“我的云端硬盘”文件夹中。如果未将其指定为复制请求的一部分,则文件将继承源文件的所有可发现父级。更新请求必须使用addParents和removeParents参数来修改父级列表。

我希望它能帮助访问此页面的任何人。

© www.soinside.com 2019 - 2024. All rights reserved.