Файл отсутствует в Google Cloud Storage на AppEngine после выполнения инструкций

Я записал файл в Google Cloud Storage, используя приведенные здесь инструкции:

https://developers.google.com/appengine/docs/java/googlestorage/overview

Код запускается и выполняется успешно, однако после входа в мою учетную запись хранилища я не вижу вновь записанный файл в своей корзине.

Есть идеи, почему?

Итак, это код экспорта:

This is the code I am using:

        try {   
            // Get the file service
            FileService fileService = FileServiceFactory.getFileService();

            /**
             * Set up properties of your new object
             * After finalizing objects, they are accessible
             * through Cloud Storage with the URL:
             * http://storage.googleapis.com/my_bucket/my_object
             */
            GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
              .setBucket(bucket)
              .setKey(key)
              .setAcl("public-read");

            // Create your object
            AppEngineFile writableFile = fileService
                    .createNewGSFile(optionsBuilder.build());

            // Open a channel for writing
            boolean lockForWrite = false;
            FileWriteChannel writeChannel = fileService.openWriteChannel(
                    writableFile, lockForWrite);

            // For this example, we write to the object using the
            // PrintWriter
            PrintWriter out = new PrintWriter(Channels.newWriter(
                    writeChannel, "UTF8"));

            Iterator<String> it = spRes.iterator();

            while (it.hasNext()) {
                out.println(it.next());
            }

            // Close without finalizing and save the file path for writing
            // later
            out.close();

            String path = writableFile.getFullPath();

            // Write more to the file in a separate request:
            writableFile = new AppEngineFile(path);

            // Lock the file because we intend to finalize it and
            // no one else should be able to edit it
            lockForWrite = true;
            writeChannel = fileService.openWriteChannel(writableFile,
                    lockForWrite);

            // Now finalize
            writeChannel.closeFinally();
        } catch (IOException e) {
            result = "Failed to export";
            e.printStackTrace();
        }

person user1798810    schedule 19.03.2013    source источник
comment
Рассмотрите возможность добавления вашего фактического кода, того, как вы выполнили код и как вы настроили контроль доступа между GCS и App Engine.   -  person Takashi Matsuo    schedule 19.03.2013
comment
В локальной среде это будет храниться в объекте _BlobInfo_.   -  person Ankur Jain    schedule 19.03.2013


Ответы (3)


Я полагаю, что вы не добавили адрес электронной почты своего приложения, который можно найти в разделе Настройки приложения вашего приложения appengine.

Затем вам нужно добавить это письмо в группу в разделе Консоль Google API для Google Cloud Storage с является владельцем права. Убедитесь, что вы также используете то же имя корзины, которое вы создали в онлайн-браузере для облачного хранилища в UploadOptions.

person Ankur Jain    schedule 19.03.2013
comment
Также можно добавить, что если OP работает на сервере разработки, файлы фактически не загружаются. - person jterrace; 19.03.2013
comment
Я думаю, это все еще не работает. Я добавил адрес электронной почты моей команды в Google API Console для Google Cloud Storage с правом владельца. Я собираюсь включить снимок, если я могу выше. - person user1798810; 25.03.2013
comment
Я думаю, у меня нет разрешения на размещение изображения. Я всегда могу отправить снимок по электронной почте вам, ребята, или опубликовать его где-нибудь. - person user1798810; 25.03.2013
comment
Вы, должно быть, что-то упускаете, так как у меня уже есть одно приложение, работающее аналогичным образом. И, пожалуйста, имейте в виду, что он не будет работать на локальном компьютере. Если хотите, я тоже могу поделиться своим кодом. - person Ankur Jain; 25.03.2013
comment
Спасибо Анкур. На данный момент я не уверен, что мне не хватает. Я считаю, что проблема не в коде, а в настройке учетной записи Google Cloud Storage... - person user1798810; 26.03.2013

Похоже, у меня было 2 разных проекта, настроенных в Google Cloud Console. Я обновлял не тот проект.

Работает сейчас.

Спасибо за помощь.

person user1798810    schedule 26.03.2013

Как сказал Анкур, вам нужно развернуть свой код на appengine для записи в облачное хранилище. В противном случае файлы будут храниться только на локальном жестком диске.

person David    schedule 24.03.2013