簡體   English   中英

Google App Engine中的os.pipe()函數

[英]os.pipe() function in google app engine

我目前正在嘗試使用python在google app引擎上壓縮一個大文件(> 1GB),並且由於google app引擎在進程的內存緩存上的限制,我使用了以下解決方案。 在Python中從生成器創建zip文件?

在應用引擎上運行代碼時,出現以下錯誤

Traceback (most recent call last):
  File "/base/data/home/apps/s~whohasfiles/frontend.379535120592235032/gluon/restricted.py", line 212, in restricted
    exec ccode in environment
  File "/base/data/home/apps/s~whohasfiles/frontend.379535120592235032/applications/onefile/controllers/page.py", line 742, in <module>
  File "/base/data/home/apps/s~whohasfiles/frontend.379535120592235032/gluon/globals.py", line 194, in <lambda>
    self._caller = lambda f: f()
  File "/base/data/home/apps/s~whohasfiles/frontend.379535120592235032/applications/onefile/controllers/page.py", line 673, in download
    zip_response = page_store.gcs_zip_page(page, visitor)
  File "applications/onefile/modules/page_store.py", line 339, in gcs_zip_page
    w = z.start_entry(ZipInfo('%s-%s' %(file.created_on, file.name) ))
  File "applications/onefile/modules/page_store.py", line 481, in start_entry
    r, w = os.pipe()
OSError: [Errno 38] Function not implemented

Google App引擎不支持OS.pipe()函數嗎? 請問我該如何解決?

可以使用'os'模塊,但是禁用了不支持的功能,例如pipe(),因為它對文件對象進行操作[1]。 您將需要使用Google Cloud Storage存儲桶作為臨時對象,因為沒有可用於App Engine運行時本地存儲的文件對象的概念。 GCS客戶端庫將為您提供類似文件的存儲桶訪問權限,您可以將其用於此目的[2]。 每個應用程序都可以訪問默認存儲桶,您可能需要先激活默認存儲桶[3]。

[1] https://cloud.google.com/appengine/docs/python/#Python_Pure_Python
[2] https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/
[3] https://cloud.google.com/appengine/docs/python/googlecloudstorageclient/activate

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM