如何在应用程序重新启动之间保留 Bluemix 文件
How to persist Bluemix files between app restarts
我在 Bluemix 上使用 rails 4 应用程序,使用回形针 gem 附加文件。众所周知,Paperclip 在实际数据库中保存对该文件的引用,将物理文件保存到 /public
位置。
我正在向此数据库提交文件,该文件已保存在此处
/home/vcap/app/public/files/submissions/files/140/original/Successful_Submission.pdf
然后文件检索工作正常。一旦我重新启动我的应用程序,我得到:
Errno::ENOENT (No such file or directory @ rb_file_s_lstat - /home/vcap/app/public/files/submissions/files/140/original/Successful_Submission.pdf):
这是因为 Bluemix 没有保留此信息。我怎样才能在应用重启之间获取这些文件?
Bluemix 建立在 Cloud Foundry 之上,它有一个临时文件系统,即,一旦您的应用程序停止,平台将收回该文件系统,并在您重新启动应用程序后创建一个全新的文件系统。
不建议为云应用程序写入本地文件系统,您可能需要重新设计您的应用程序才能使用 Bluemix。一种解决方案是将文件保存在数据库中,而不仅仅是参考。
您可以在此找到更多详细信息link。
Bluemix(基于 Cloud Foundry)上的每个应用程序实例都有临时存储。此存储仅在该特定实例的生命周期内可用。当您重新部署您的应用程序时,您将获得一个新的应用程序实例,并且之前的应用程序实例上的任何数据都将无法访问。
对于为什么在为 Bluemix / Cloud Foundry 设计应用程序时最好 avoid writing to the local file system 有一个很好的解释。
您可能想看一下 gem,例如 CarrierWave to store the files on Amazon S3 or another persistent store. There's also Paperclip,它提供了类似的功能。
我在 Bluemix 上使用 rails 4 应用程序,使用回形针 gem 附加文件。众所周知,Paperclip 在实际数据库中保存对该文件的引用,将物理文件保存到 /public
位置。
我正在向此数据库提交文件,该文件已保存在此处
/home/vcap/app/public/files/submissions/files/140/original/Successful_Submission.pdf
然后文件检索工作正常。一旦我重新启动我的应用程序,我得到:
Errno::ENOENT (No such file or directory @ rb_file_s_lstat - /home/vcap/app/public/files/submissions/files/140/original/Successful_Submission.pdf):
这是因为 Bluemix 没有保留此信息。我怎样才能在应用重启之间获取这些文件?
Bluemix 建立在 Cloud Foundry 之上,它有一个临时文件系统,即,一旦您的应用程序停止,平台将收回该文件系统,并在您重新启动应用程序后创建一个全新的文件系统。
不建议为云应用程序写入本地文件系统,您可能需要重新设计您的应用程序才能使用 Bluemix。一种解决方案是将文件保存在数据库中,而不仅仅是参考。
您可以在此找到更多详细信息link。
Bluemix(基于 Cloud Foundry)上的每个应用程序实例都有临时存储。此存储仅在该特定实例的生命周期内可用。当您重新部署您的应用程序时,您将获得一个新的应用程序实例,并且之前的应用程序实例上的任何数据都将无法访问。
对于为什么在为 Bluemix / Cloud Foundry 设计应用程序时最好 avoid writing to the local file system 有一个很好的解释。
您可能想看一下 gem,例如 CarrierWave to store the files on Amazon S3 or another persistent store. There's also Paperclip,它提供了类似的功能。