警告:无法更改每个人的权限:

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

在 NetBeans 中运行位于 https://developers.google.com/drive/web/quickstart/java?hl=hu 的 Java 快速入门示例时,我收到错误代码:

Jun 04, 2015 12:12:11 AM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for everybody:
C:\Users\Quibbles\credentials\drive-api-quickstart

我做错了什么?

编辑:这是完整的错误消息。

Jun 04, 2015 5:11:39 PM com.google.api.client.util.store.FileDataStoreFactory setPermissionsToOwnerOnly
WARNING: unable to change permissions for owner: C:\Users\Quibbles\.credentials\drive-api-quickstart
Exception in thread "main" java.lang.NullPointerException
    at java.io.Reader.<init>(Reader.java:78)
    at java.io.InputStreamReader.<init>(InputStreamReader.java:72)
    at DriveQuickstart.authorize(DriveQuickstart.java:64)
    at DriveQuickstart.getDriveService(DriveQuickstart.java:87)
    at DriveQuickstart.main(DriveQuickstart.java:96)
Java Result: 1
java google-drive-api
6个回答
35
投票

遇到了同样的问题,浪费了几个小时才意识到“无法更改所有者的权限:C:\Users\Quibbles.credentials\drive-api-quickstart”
只是一个警告。

真正的问题是这里的空指针。

InputStream in =
            DriveQuickstart.class.getResourceAsStream("/client_secret.json");

这条线是我的问题所在。 “in”为空,因此为空指针。

InputStream in    = new FileInputStream("<Full Path>\\client_secret.json");  

这解决了我的问题。


18
投票

实际问题是 Google 的 setPermissionsToOwnerOnly API 代码中的一个错误

编写的代码仅适用于基于 Linux/Unix 的系统,不适用于基于 Windows ACL 的系统。

您可以忽略警告或编写自己的 DataStore 类来为 Windows 正确设置权限。

我也将尝试向 Google 提交错误。


5
投票

我在 Eclipse 中遇到了同样的问题。解决办法如下:

  1. 以管理员模式运行 eclipse

  2. 清除目录

    C:/Users/<username>.credentials/calendar-java-quickstart.json

  3. 将 .json 文件复制到 bin 目录,例如

    bin/main/resources/client_secret.json

你现在可以自由奔跑了。


3
投票

基本上,如果您已经启用了 de Drive API 并在 Google Drive API Rest 创建了凭据.json 文件,现在您需要:

1 - 删除上次执行中生成的 tokens 目录。在此目录中包含一个文件 StoredCredential.txt。 2 - 将 SCOPE 更改为 DriveScopes.DRIVE,如下例所示:

私有静态列表范围 = Collections.singletonList(DriveScopes.DRIVE);

3 - 重新运行程序。系统将要求您登录您的谷歌帐户以授予访问同意。

4 - 它将在您的项目中生成一个新的令牌目录,并且现在具有 google Drive 的读写权限。

这对我有用。


0
投票

我刚刚在 https://developers.google.com/google-apps/calendar/quickstart/java 示例中遇到了同样的问题。我怀疑问题在于您在 Windows 中运行它,并且运行它的 JVM 没有更改 Windows 中文件权限的管理员权限。

请参阅 在 Windows 上以管理员身份运行 Java 应用程序


0
投票

运行教程“https://developers.google.com/drive/v2/web/quickstart/java”中给出的示例时遇到同样的问题。按照教程中给出的同上说明进行操作,但不断收到此权限异常。最终,通过将“client_secret.json”移动到“uil”来解决这个问题

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