我需要使用uploadify来允许用户上传将存储在Amazon S3中的文件。
我相信可以直接上传到S3,但我还需要在我的服务器上进行一些处理。
我需要做的是在上传之前为视频生成一个唯一的文件名,然后在成功上传后将文件名保存到我的数据库中。
任何人都可以提供有关如何实现这一目标的任何见解吗?
答案 0 :(得分:1)
我们也在我们的申请中这样做。
我需要做的是在上传之前为视频生成一个唯一的文件名,然后在成功上传后将文件名保存到我的数据库中。
我认为你有错误的方法。
我们有一个通用Post
表,我们存储所有类型的帖子,其中Photo
是一个。
因此,当用户上传照片时,我们首先保存照片,使其获得唯一标识符(例如DB - PK中的IDENTITY字段),然后我们将其用作文件名。< / p>
这样我们就可以使用约定来呈现S3链接 - 例如/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);
}
您是否允许用户输入某种名称/标签/其他输入?如果是这样,您可以根据此名称在服务器上创建唯一的slug,然后将其用作文件名(适用于SEO)。