Dav*_*d S 55 filesystems heroku
我在Heroku上使用Python/Django(Cedar Stack),我有一个我需要编写的管理命令,它将从S3存储桶中取出一个文件并对其进行处理.我不确定我是否理解如何使用短暂的文件系统.是否只有某些可写的目录?我发现另一篇文章暗示只有某些文件夹是可写的(但是,它似乎不适用于Cedar堆栈).我发现了这篇开发文章,但它没有详细介绍(注意:我确实理解它只是暂时的.我只需要解压缩文件并处理文件).我可以在应用程序的根目录下的任何位置创建一个文件夹吗?我怎么能得到它?好像我可能只是使用$ HOME.我通过连接到via做了一些测试
$ heroku run bash
Run Code Online (Sandbox Code Playgroud)
和运行:
$ echo #HOME
Run Code Online (Sandbox Code Playgroud)
收益:
/应用
和运行:
$ mkdir $HOME/tmp
Run Code Online (Sandbox Code Playgroud)
在应用程序的根目录中创建一个文件夹,并提供与其他文件和文件夹相同的用户和组.
那么......我在这里缺少什么?一个更好的方法吗?这有OS环境变量吗?我跑"env"而且我看不到更好的一个.
Naa*_*old 74
要真正了解短暂的文件系统,您需要了解dyno是什么.您可以阅读有关dynos如何工作的更多信息.简而言之,一个进程在具有自己的文件系统的虚拟机中运行在Heroku上.该虚拟机可以出于多种原因停止,将文件系统与其一起使用.
当应用程序重新启动,重新配置(例如heroku config ...),缩放等时,底层文件系统将被销毁.例如,如果你有两个web dynos,将一些文件写入临时文件系统,并扩展到三个dynos,那些文件将被销毁因为你的应用程序正在新的dynos上运行.
通常,短暂的文件系统就像任何文件系统一样工作.您有权写入的目录,例如$HOME和/tmp,您可以将文件写入.任何需要永久性的文件都应该写入S3或类似的持久存储.S3是首选,因为Heroku在AWS上运行,S3提供了一些性能优势.任何可以随意重新创建的文件都可以存储在dyno的临时商店中.
Aus*_*cus 52
您可以在'/ tmp'目录下创建一个文件,该文件将在请求完成后销毁.我在Cedar上这样做,我没有遇到任何问题.
| 归档时间: |
|
| 查看次数: |
40953 次 |
| 最近记录: |