Учетная запись api сервисов Google drive просмотреть загруженные файлы на диск google с помощью java

2

Я создал код для вставки файла на Google Drive с помощью учетной записи службы в java.file загружается на диск Google, но я не вижу его с помощью веб-браузера. Когда я проверяю файл с помощью кода, я могу получить загруженный файл. как я могу загружать файлы на Google Drive, которые можно просматривать через веб-браузер, используя учетную запись google services в java

пожалуйста, найдите пример кода ниже.

      public class PlusServiceAccountSample {


          private static final String APPLICATION_NAME = "";

          /** E-mail address of the service account. */
          private static final String SERVICE_ACCOUNT_EMAIL = "[email protected]" ;

          /** Global instance of the HTTP transport. */
          private static HttpTransport httpTransport;

          /** Global instance of the JSON factory. */
          private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();


          public static void main(String[] args) {
            try {
              try {
                httpTransport = GoogleNetHttpTransport.newTrustedTransport();
                // check for valid setup
                if (SERVICE_ACCOUNT_EMAIL.startsWith("Enter ")) {
                  System.err.println(SERVICE_ACCOUNT_EMAIL);
                  System.exit(1);
                }
                String p12Content = Files.readFirstLine(new File("XXXXX-privatekey.p12"), Charset.defaultCharset());
                if (p12Content.startsWith("Please")) {
                  System.err.println(p12Content);
                  System.exit(1);
                }
                // service account credential (uncomment setServiceAccountUser for domain-wide delegation)
                GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
                    .setJsonFactory(JSON_FACTORY)
                    .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
                    .setServiceAccountScopes(Collections.singleton(DriveScopes.DRIVE))
                    .setServiceAccountPrivateKeyFromP12File(new File("XXXXXXXX-privatekey.p12"))

                    .build();


                Drive service = new Drive.Builder(httpTransport, JSON_FACTORY,credential).build();

                com.google.api.services.drive.model.File  file = new com.google.api.services.drive.model.File();
                file.setTitle("testdd");
                file.setMimeType("application/vnd.google-apps.spreadsheet");
                Drive.Files.Insert insert = null;
                try {
                    insert = service.files().insert(file);
                    file = insert.execute();


                } catch (Exception e) {
                    e.printStackTrace();  //To change body of catch statement use File | Settings | File Templates.
                }

                com.google.api.services.drive.model.File uploadedDoc = service.files().get("1ZJnkgFXAiUNSBeq3DmhHGqXn7-v37vLg1UsRekRQNjU").execute();

                System.out.println("Title: " + uploadedDoc.getTitle());




                return;
              } catch (IOException e) {
                System.err.println(e.getMessage());
              }
            } catch (Throwable t) {
              t.printStackTrace();
            }
            System.exit(1);
          }
Теги:
oauth-2.0
google-drive-sdk

2 ответа

2
Лучший ответ

Если вы установите разрешения для файла, вы можете увидеть его в своем обычном аккаунте gmail (раздел "Совместно со мной" ):

Permission newPermission = new Permission();
newPermission.setValue("...your regular [email protected]");
newPermission.setType("user");
newPermission.setRole("reader");
service.permissions().insert(file.getId(), newPermission).execute();

Вы также можете использовать уникальный URL-адрес для доступа к файлу:

System.out.println("Title: " + uploadedDoc.getTitle()+ " "+ uploadedDoc.getAlternateLink());

Возможные значения типа и роли приведены в документах SDK на Google Диске: https://developers.google.com/drive/v2/reference/permissions/insert

  • 0
    Спасибо, это работает. Я могу видеть загруженные файлы в разделе «поделился со мной». Есть ли способ, как мы можем напрямую загружать файлы на диск, используя учетную запись службы Google
  • 0
    ну, в документации Google Диска сказано: Сервисные учетные записи - это учетные записи, связанные с сервисом или проектом. Они не принадлежат пользователю и могут быть доступны только программным путем связанным приложением.
Показать ещё 1 комментарий
1
  • Перейдите на Google Drive. Создайте папку и откройте "Общий доступ" настройки "для него.
  • Добавить свой служебный адрес электронной почты в список разрешенных пользователей и разрешить отредактируйте содержимое этой папки.
  • Запомните идентификатор папки где-нибудь и используйте этот идентификатор папки во время загрузки файлы.
  • Он будет загружен в вашу личную учетную запись Google.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню