Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使回形针在开发时只读?(防止上载/删除/覆盖)_Ruby On Rails_Paperclip - Fatal编程技术网

Ruby on rails 如何使回形针在开发时只读?(防止上载/删除/覆盖)

Ruby on rails 如何使回形针在开发时只读?(防止上载/删除/覆盖),ruby-on-rails,paperclip,Ruby On Rails,Paperclip,我的生产和开发数据库在某种程度上是同步的,所以开发可以从生产路径(S3)读取图像 问题是,当我删除、更新或创建开发记录时,它会影响S3映像 我不希望这种行为发生在开发中,但应该发生在生产中 是否有将回形针转换为只读模式的选项?我仍然希望看到来自S3的图像(而不是404图像) 我看到了:preserve_files选项,它有助于保护删除。是否有保护覆盖/禁用上载的选项?好吧,对于未来的版本来说,是不完整的、丑陋的和不安全的,但同时也可以做到这一点 config/initializers/paper

我的生产和开发数据库在某种程度上是同步的,所以开发可以从生产路径(S3)读取图像

问题是,当我删除、更新或创建开发记录时,它会影响S3映像

我不希望这种行为发生在开发中,但应该发生在生产中

是否有将回形针转换为只读模式的选项?我仍然希望看到来自S3的图像(而不是404图像)


我看到了
:preserve_files
选项,它有助于保护删除。是否有保护覆盖/禁用上载的选项?

好吧,对于未来的版本来说,是不完整的、丑陋的和不安全的,但同时也可以做到这一点

config/initializers/paperclip.rb

if Rails.env.development?
  module Paperclip
    class Attachment
      def assign uploaded_file
      end

      def save
      end

      def clear(*)
      end

      def destroy
      end

      private
      def post_process(*)
      end

      def post_process_styles(*)
      end

      def post_process_style(*)
      end

      def queue_some_for_delete(*)
      end

      def queue_all_for_delete
      end

      def after_flush_writes
      end
    end
  end
end

嗯,对于未来的版本来说,补丁、丑陋和不安全,但同时也能起到作用

config/initializers/paperclip.rb

if Rails.env.development?
  module Paperclip
    class Attachment
      def assign uploaded_file
      end

      def save
      end

      def clear(*)
      end

      def destroy
      end

      private
      def post_process(*)
      end

      def post_process_styles(*)
      end

      def post_process_style(*)
      end

      def queue_some_for_delete(*)
      end

      def queue_all_for_delete
      end

      def after_flush_writes
      end
    end
  end
end

假设您需要在开发中使用生产数据,我认为创建一个“用户策略”会更有意义,用户只能读取某些S3资源。然后相应地更改环境变量

然后,您可以处理开发中的错误(如果您尝试使用只读权限进行更新,S3客户机将失败)。这确保了您在生产过程中不能触摸任何东西

例如(伪代码)


假设您需要在开发中使用生产数据,我认为创建一个“用户策略”会更有意义,用户只能读取某些S3资源。然后相应地更改环境变量

然后,您可以处理开发中的错误(如果您尝试使用只读权限进行更新,S3客户机将失败)。这确保了您在生产过程中不能触摸任何东西

例如(伪代码)


有点晚了,但这是一个很好的问题。是否可以使用身份和访问管理(IAM)创建一组只读的Cred?看:有点晚了,但这是一个很好的问题。是否可以使用身份和访问管理(IAM)创建一组只读的Cred?看:我会非常紧张使用这个…为什么客户端数据会消失…(查看git日志)为什么---运行包更新@user657199您能详细介绍一下您的评论吗?使用这个我会非常紧张…为什么客户端数据会消失…(查看git日志)为什么---运行bundle update@user657199您能详细介绍一下您的评论吗?