当前位置: 首页 > 知识库问答 >
问题:

Google Drive Api[上传文件到浏览器中未显示的服务帐户][副本]

薄龙光
2023-03-14

我正在使用java google drive api上传文件。我的问题是上传文件后,我没有从我的谷歌驱动器找到上传的文件。我如何在网络浏览器中查看文件?有什么想法请帮帮我?

我的java代码是:

    HttpTransport httpTransport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();

    try {
        GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport).setJsonFactory(jsonFactory).setServiceAccountId(IRingeeConstants.SERVICE_ACCOUNT_EMAIL)
                .setServiceAccountScopes(Collections.singleton(DriveScopes.DRIVE)).setServiceAccountPrivateKeyFromP12File(new java.io.File("G:\\Ringee-1a1f1b786226.p12")).build();

        Drive service = new Drive.Builder(httpTransport, jsonFactory, credential).setApplicationName(IRingeeConstants.APPLICATION_NAME).build();

        printAbout(service);

        File body = new File();
        body.setTitle("ringeeprofileimage");
        body.setDescription("ringeeapp");
        body.setMimeType("application/vnd.google-apps.folder");

        java.io.File fileContent = new java.io.File("G:\\document.txt");
        FileContent mediaContent = new FileContent("text/plain", fileContent);

        File file = service.files().insert(body, mediaContent).execute();
        System.out.print("file id is :" + file.getId());

共有2个答案

皇甫礼骞
2023-03-14

添加以下代码:

Permission newPermission = new Permission();
        //for showing files in browser that reason only using additional permission 
        newPermission.setValue(IRingeeConstants.USER_ACCOUNT_EMAIL);
        newPermission.setType("user");
        newPermission.setRole("writer");
        service.permissions().insert(file.getId(), newPermission).execute();

用户帐户邮件只不过是服务电子邮件ID,如 nmkkannan@gmail.com

它解决了…

常元章
2023-03-14

您正在使用服务帐户上传文件。服务帐户不是您。将服务帐户视为由服务帐户电子邮件地址标识的虚拟用户

一个服务帐户他自己的驱动器帐户,谷歌日历,.....

因此,文件被上传,它们只是上传到您无法使用Web界面访问的服务帐户驱动器帐户。

如果您希望能够看到它们,您需要让服务号访问您Google Drive帐户上的目录,将其上传到该目录,然后在插入后修补权限以允许您的个人帐户访问文件。这必须分两步完成,这是一个奇怪的错误。

 类似资料:
  • 问题内容: 是否可以使用ajax将文件从浏览器升级到FTP服务器? 问题答案: 不会。浏览器不提供允许从JavaScript写入FTP的API。 您可以将文件发布到HTTP端点,然后使用服务器端代码将其推送到FTP服务器。

  • 是否可以使用server1将文件上传到server2? 访客请访问:我的网站。com(server1) 然后他将一个文件上传到server1,server1会自动将该文件上传到server2?? 或者简单地说,用户可以使用server1作为代理将文件上传到server2,因为server2只能从server1访问 会有帮助吗,还是有其他更好的解决方案?

  • 我正在构建一个功能,将文件从我的web应用程序上传到我的客户google drive。我不希望应用程序对用户进行身份验证。谁曾经上传过我文件中的任何文件?我想上传到我客户的谷歌硬盘。 我假设服务帐户是用于此目的的帐户。我说得对吗? 当我使用以下代码上传文件时,它会成功上传,但在“我的驱动器”下不可见。然后我添加了一个权限,基本上与我的gmail帐户共享该文件。然后它在“与我共享”部分可见。 我希望

  • 我正在OpenAPI 3.0中使用Swagger编辑器。我需要文件的路线,其中包括上传图像。当尝试“试用”时,我不会让文件浏览器选择要在请求正文中上载的图像,我得到的只是一个带有参数名称和类型的JSON字符串。 这是路线的YAML描述: 我错过了什么?

  • 在我的项目中,我在后端有Spring Boot,在前端有React.js。 我的后端工作正常,我知道,因为我已经用Postman测试过了。 在上传文件的前端,我有一个名为 ,它看起来像这样: 但问题是每次上传都失败。也许原因是路径,不确定。我试图路径。我得到的是C:\fakepath\Screenshot(187). png 现在我的问题是,如果是因为路径,我怎么才能正确地做它(据我所知,浏览器不