1

私の本番と開発のDBはある程度同期しているので、開発は本番パスからイメージを読み取ることができます(S3)。

問題は、開発時にレコードを削除、更新、または作成すると、S3イメージに影響することです。

この動作が開発時に発生することは望ましくありませんが、本番環境では発生するはずです。

ペーパークリップを読み取り専用モードにするオプションはありますか?私はまだS3からの画像を見たいです(404画像ではありません)。

:preserve_files削除を保護するのに適したオプションを見ました。上書きを保護する/アップロードを無効にするオプションはありますか?

4

2 に答える 2

1

まあ、パッチがあり、醜く、将来のバージョンでは安全ではありませんが、当面の間は機能します。

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
于 2012-08-22T08:59:51.217 に答える
0

開発で本番データを使用する必要があると仮定すると、ユーザーが特定のS3リソースのみを読み取ることができる「ユーザーポリシー」を作成する方がはるかに理にかなっていると思います。次に、それに応じて環境変数を変更します https://docs.aws.amazon.com/AmazonS3/latest/userguide/example-policies-s3.html

次に、開発中のエラーを処理できます(読み取り専用権限で更新しようとすると、S3クライアントは失敗するはずです)。これにより、本番環境では何にも触れられなくなります

たとえば(擬似コード)、

if Rails.env.development?
  // do not update
else
  Model.attachment.assign()
end
于 2021-04-07T16:22:36.990 に答える