如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?相关的知识,希望对你有一定的参考价值。

我正在将我的Rails应用程序部署到Digital Ocean。

我需要通过Rails控制台(甚至在作业队列中)运行自定义ruby脚本,在某些情况下,我希望它创建一个文件并将其存储在我的config目录中。

具体来说,这就是设置的样子:

Money.default_bank = MoneyOXR::Bank.new(
  app_id: ENV["APP_ID"],
  cache_path: 'config/oxr.json',
  max_age: 86400
)

所以,需要发生的是,只要它运行它需要创建config/oxr.json

但是,当我运行它时,会发生这种情况:

Errno::EACCES: Permission denied @ rb_sysopen - config/oxr.json

现在,我只是在Rails控制台的命令行中以MyScript.run的身份运行它。

我该怎么做呢?

答案

您需要为create/write提供必要的文件夹权限。你可以这样做:

chmod -R g + w app_path / config

这为app config文件夹提供了写入权限。

如果您想为某个用户授予权限,那么:

=> w || who; #list all of the currently logged in users
=> chgrp -R user_name app_path/config
=> chmod -R g+w app_path/config

由OP编辑

什么也有效:sudo chmod 777 oxr.json

以上是关于如何通过Rails控制台在Digital Ocean上写入权限来执行Ruby脚本?的主要内容,如果未能解决你的问题,请参考以下文章