0

ユーザーが音楽トラックと関連するクリップをアップロードできるアプリケーション (Rails 3.2.8) を構築しています。クリップはパブリックにアクセスできますが、トラックは購入しないとアクセスできません。両方のタイプのファイルをアップロードするために、carrierwave を使用しています。ただし、実際のトラック パスをユーザーに公開したくありません。

そのようなサービスは、ホットリンクやファイルへの不正アクセスを保護するためにどのような技術を使用していますか?

現在、搬送波パスは次のようになっています。

  def store_dir
    "tracks/#{model.user_id}/"
  end

ただし、これは非常に脆弱です。誰でも簡単にURLを推測できます。

承認されたダウンロードについては、次のことを考慮することができます: 1. 静的ダウンロード リンク (このリンクはそのユーザーに対して常に有効ですが、ゲストや他のユーザーはその URL を使用できません) 2. ダウンロードごとの一般的な一時リンク!

購入せずにダウンロードからファイルを保護できるように、私が検討できる方法を教えてください(私はそれらを研究します)。

4

2 に答える 2

1

クリップの公開とトラックの非公開の両方が必要なようです。以下のアプローチでもこれを実装しようとしています(テストされていません)

def fog_public
  return @job.job_kind == 'public'
end
于 2012-11-11T19:37:38.263 に答える
0

s3 を使用すると、プライベート ファイルを保存できます。これらのファイルは、特定の期間およびアクセス トークンでのみ使用できます。

Carrierwave では、https://github.com/jnicklas/carrierwave#using-amazon-s3fog_publigで説明されているように、単純に falseに設定する必要があります。

于 2012-10-09T18:14:07.013 に答える