2012-03-05 10 views
2

uploadifyを使用して、Amazon S3に保存されるファイルをアップロードできるようにする必要があります。Uploadify S3に直接送信し、ファイル名をデータベースに保存する

私はS3に直接アップロードすることは可能だと思っていますが、私のサーバーでも何らかの処理をする必要があります。

私がする必要があるのは、アップロードする前にビデオの一意のファイル名を生成し、アップロードが成功した後にファイル名をデータベースに保存することです。

誰でもこれを達成するための洞察を提供できますか?

+0

アップロードの意味は何ですか? –

+1

@Ramhoundファイルをサーバーにアップロードするためのajaxフラッシュコンポーネントで、マルチファイルの選択が可能です。 – mattmanser

答えて

1

私たちもアプリケーションでこれを行います。

アップロードする前に動画の一意のファイル名を生成し、アップロードが成功したらファイル名をデータベースに保存する必要があります。

私はあなたが間違った方法を持っていると思います。

私たちはすべての種類の投稿を格納するPostという一般的なテーブルを持っています。そのうちPhotoは1です。

したがって、ユーザーが写真をアップロードするときは、最初に写真を保存して固有の識別子(DB-PKのIDENTITYフィールド)を取得してからファイル名として使用します。

このようにして、S330リンク(例:/s3.amazonaws.com/yourbucket/photoid.jpg)をレンダリングするには、の規約を使用できます。

だからあなたのコントローラは、このようなものになります。

// might need to change to HttpPostedFileBase[] for multiple file uploads 
[HttpPost] 
public ActionResult Upload(HttpPostedFileBase, string photoName) 
{ 
    var stream = httpPostedFileBase.InputStream; 
    var photo = new Photo { Name = photoName }; 
    repository.Save(photo); 
    s3service.Upload(stream, photo.Id); 
} 

をユーザーが何らかのの名前/タグ/他の入力に入ることを可能にしていますか?もしそうなら、この名前に基づいてサーバー上にユニークなスラッグを作成し、それをファイル名として使用することができます(SEOに適しています)。

+0

私は現在基本的に同じことをやっています。しかし、私のホストによって課せられた制限のため、大きなファイルをWebサーバーにアップロードしてからS3に送信することができないので、ブラウザからS3に直接ファイルを投稿する必要があります。 – stephen776

+1

@ stephen776 - ブラウザがS3に直接投稿できるようにすることは、悪用のために熟しているようです。 – Greg

+1

私はamazonがs3に直接ポスティングをサポートし、渡されるパラメータを安全にするためにハッシング解決策が使用されると信じています。私はこのメソッドに関する詳細情報をuploadifyと一緒に探しています – stephen776

関連する問題