Google App Engine是否允许在服务器上创建文件和文件夹?

Fra*_*ank 23 google-app-engine file save

我知道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(); }
    }
  }
Run Code Online (Sandbox Code Playgroud)

Rom*_*eau 27

您可以从自己的项目中读取文件 - 您无法写入文件系统

来自FAQ ...

为什么我不能写这个文件?

由于应用程序的分布式特性,App Engine不支持写入本地文件.相反,必须保留的数据应存储在分布式数据存储中.有关更多信息,请参阅运行时沙箱上的文档

App Engine应用程序不能:

  • 写入文件系统.应用程序必须使用App Engine数据存储区来存储持久数据.允许从文件系统读取,并且随应用程序一起上载的所有应用程序文件都可用.

  • 打开套接字或直接访问其他主机.应用程序可以使用App Engine URL提取服务分别向端口80和443上的其他主机发出HTTP和HTTPS请求.

  • 产生子进程或线程.必须在几秒钟内在单个进程中处理对应用程序的Web请求.终止需要很长时间才能响应的进程以避免Web服务器过载.

  • 进行其他类型的系统调用.


小智 6

新讯息。答案是肯定的,但您必须使用他们的云存储进行写访问。您不能将常规文件用于您的目的。

https://developers.google.com/appengine/docs/java/googlecloudstorageclient/

它还具有 Python API 和 RESTful API。


Dan*_*yar 5

不,不允许文件i/o.您可以使用blob来存储图像或文本.

  • @Shreesha是的,blobstore可以存储它.免费限制是5GB的空间,请注意. (2认同)