我需要使用 uploadify 来允许用户上传将存储在 Amazon S3 中的文件。
我相信可以直接上传到 S3,但我还需要在我的服务器上做一些处理。
我需要做的是在上传前为视频生成一个唯一的文件名,然后在上传成功后将文件名保存到我的数据库中。
谁能提供有关如何实现此目标的任何见解?
最佳答案
我们也在我们的应用程序中这样做。
What I need to do is generate a unique filename for the video before upload and then save the filename to my database after a successful upload.
我认为你理解错了。
我们有一个通用的 Post
表,我们在其中存储所有类型的帖子,Photo
就是其中之一。
因此,当用户上传照片时,我们首先保存照片以便它获得唯一标识符(例如数据库中的 IDENTITY 字段 - PK),然后我们将其用作文件名。
这样我们就可以使用约定来呈现 S3 链接 - 例如/s3.amazonaws.com/yourbucket/photoid.jpg。
所以你的 Controller 看起来像这样:
// 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)。
关于c# - 上传直接发送到 S3 并将文件名保存到数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9570262/