Поддерживает ли Google App Engine создание файлов и папок на сервере?
Я знаю, что Google App Engine предлагает свободное пространство, но мне интересно, хранит ли он только данные в своей базе данных или позволяет мне создавать файлы и каталоги на стороне сервера для хранения моих данных? Например, можно ли использовать следующий метод для сохранения файла?
public static void saveFile(String File_Path,StringBuffer Str_Buf,boolean Append)
{
FileOutputStream fos=null;
BufferedOutputStream bos=null;
try
{
fos=new FileOutputStream(File_Path,Append);
bos=new BufferedOutputStream(fos);
for (int j=0;j<Str_Buf.length();j++) bos.write(Str_Buf.charAt(j));
}
catch (Exception e) { e.printStackTrace(); }
finally
{
try
{
if (bos!=null)
{
bos.close();
bos=null;
}
if (fos!=null)
{
fos.close();
fos=null;
}
}
catch (Exception ex) { ex.printStackTrace(); }
}
}
Ответы
Ответ 1
Вы можете читать файлы из своего собственного проекта - Вы не можете писать в файловую систему
из FAQ...
Почему я не могу записать этот файл?
Запись в локальные файлы не поддерживается в App Engine из-за распределенной природы вашего приложения. Вместо этого данные, которые необходимо сохранить, должны храниться в распределенном хранилище данных. Для получения дополнительной информации см. Документацию в изолированной программной среде
Приложение App Engine не может:
-
записать в файловую систему. Приложения должны использовать хранилище данных App Engine для хранения постоянных данных. Разрешено чтение из файловой системы и доступны все файлы приложений, загруженные с помощью приложения.
-
открыть сокет или напрямую обратиться к другому хосту. Приложение может использовать служебную программу URL-адреса URL-адреса App Engine для передачи HTTP и HTTPS-запросов другим хостам на портах 80 и 443 соответственно.
-
порождает подпроцесс или поток. Веб-запрос к приложению должен обрабатываться одним процессом в течение нескольких секунд. Процессы, которые занимают очень много времени для ответа, завершаются, чтобы избежать перегрузки веб-сервера.
-
делать другие виды системных вызовов.
Ответ 2
Нет, файл ввода/вывода не разрешен. вы можете использовать капли для хранения изображений или текста.
Ответ 3
Новая информация.
Ответ: Да, но вы должны использовать их облачное хранилище для доступа к записи. Вы не можете использовать обычные файлы для своей цели.
https://developers.google.com/appengine/docs/java/googlecloudstorageclient/
Он также имеет API Python, а также API RESTful.
Ответ 4
Я думаю, что следует упомянуть, что запись в blobstore с использованием API-интерфейсов теперь устарела и что Google переходит в облачное хранилище.