2013-09-30 2 views
0

Мне нужно добавить содержимое строки в файл облачного хранилища Google.Добавить операцию в файле облачного хранилища Google

На самом деле я выполняю строчную операцию, которая содержит размер файла более 30 МБ.

Я запускаю свой проект в Google App Engine. Когда я пытаюсь сохранить весь контент в stringbuilder, он бросает java-ошибку кучи пространства в движке Google.

Есть ли способ добавить содержимое в облачный файл хранилища Google вместо увеличения пространства кучи java?

ответ

1

Потоковая передача данных на Java обычно выполняется с использованием шаблона Writer. Когда вы создаете свои данные, вы «пишете» его в потоке. Сохранение всего в памяти приводит к проблемам, которые вы испытали.

Я не уверен, какую библиотеку вы используете для доступа к облачному хранилищу Google, но большинство из них обеспечивают способ записи объектов по нескольким байтам за раз.

API-интерфейс Google Cloud Storage API App Engine предоставляет объект AppEngineFile с помощью метода write(), который вы можете повторно использовать при создании своего объекта. Новая клиентская библиотека облачного хранилища Google предоставляет GcsOutputChannel, которые могут сделать то же самое.

Возможно, я неправильно понял ваш вопрос. Вы спрашиваете о создании объекта в облачном хранилище Google и затем добавлении содержимого к нему? GCS не позволяет добавлять файлы после их полного создания с ограниченным исключением «компоновки» функциональности (которая будет работать, за исключением того, что вы можете создавать объект только определенное количество раз, прежде чем достичь максимальной композиции уровень).

+0

Да, я использовал объект AppEngineFile с методом write(), но он был лишен, поэтому я перешел в GcsOutputChannel. Используя метод write(), я добавил содержимое, но не могу сделать это в GcsOutputChannel. Как вы сказали, я потом создаю объект и добавляю к нему контент. Если у него есть другая возможность сделать это, скажите мне. Спасибо за ответ Брэндон. – user2642444

Смежные вопросы