2012-03-04 37 views
5

Tôi đang chạy một trang web xử lý tải lên đa phương tiện cho một trong những mục đích chính của nó. Tôi tự hỏi các phương pháp hay nhất hoặc tiêu chuẩn công nghiệp là gì để tổ chức rất nhiều tệp do người dùng tải lên trên máy chủ.Sắp xếp nhiều tệp tải lên

Trả lời

3

Tôi không nghĩ bạn sẽ nhận được bất kỳ câu trả lời cụ thể nào trừ khi bạn cung cấp thêm ngữ cảnh và mô tả trường hợp sử dụng dành cho tệp. Giống như bất kỳ quyết định công nghệ nào khác, 'thực hành tốt nhất' luôn là sự thỏa hiệp giữa các yêu cầu chức năng và phi chức năng khác nhau, và như vậy câu hỏi cần nhiều ngữ cảnh hơn để mang lại câu trả lời mà bạn có thể thực hiện.

Có nói rằng, đây là một số trong những chiến lược tôi sẽ xem xét tùy chọn âm thanh:

1) Sử dụng công ước quyết định bởi người tiêu dùng của các tập tin. Ví dụ: nếu các tệp sẽ được sử dụng bởi giải pháp CMS/xuất bản, hệ thống đó có thể có một số giải pháp được chuẩn hóa để xử lý tệp.

2) Sử dụng giải pháp tải lên của bên thứ ba. Có một loạt các công cụ có thể giúp hướng dẫn bạn một giải pháp giải quyết vấn đề cụ thể của bạn. Các công cụ như Transloadit, ZencoderEncoding đều có các tùy chọn khác nhau để xử lý tải lên. Việc xem xét các tùy chọn đó sẽ cung cấp cho bạn và ý tưởng về những gì có thể được coi là "tiêu chuẩn ngành".

3) Nhìn vào các giải pháp đã được chứng minh và bắt chước các bộ phận phù hợp với trường hợp sử dụng của bạn. Có các giải pháp nguồn mở xử lý các thứ bạn mô tả ở đây. Hãy xem các plugin khác nhau, ví dụ: paperclip, để tìm hiểu cách chúng tổ chức tệp hoặc quan trọng hơn, chúng cung cấp những gì trừu tượng cho phép bạn thay đổi ý định khi yêu cầu thay đổi.

4) Thiết kế giải pháp của riêng bạn. Làm tăng đột biến, đây là một trong những cách hiệu quả nhất để phơi bày các yêu cầu mà bạn chưa từng nghĩ tới. Hãy thử tích hợp một trong những công cụ được đề cập ở trên và xem nó như thế nào. Phần mềm mềm, vì vậy không có quyết định nào là cuối cùng. Có lẽ giải pháp tốt nhất là chỉ cần thử một cái gì đó, và thay đổi nó khi nó không phù hợp nữa. Đây có lẽ không phải là câu trả lời cụ thể mà bạn đang tìm kiếm, nhưng như tôi đã đề cập trong phần đầu, các quyết định thiết kế luôn là một sự cân bằng, "thực hành tốt nhất" trong một ngữ cảnh có thể là giải pháp tồi tệ nhất trong một ngữ cảnh khác:)

Chúc bạn may mắn!

1

Từ những gì tôi hiểu bạn muốn có đề xuất về cách lưu trữ tệp. Nếu đó là những gì bạn muốn, tôi sẽ đề nghị bạn có 2 hệ thống lưu trữ khác nhau cho các tệp của bạn.

Bộ nhớ đầu tiên là nơi lưu trữ tệp vật lý, như thư mục trên máy chủ của bạn (w/o FTP được bật, có thể truy cập hoặc không vào trình duyệt, ...) hoặc truy cập Amazon s3 (aws.amazon.com/en/s3/), Rackspace CloudFiles (www.rackspace.com/cloud/cloud_hosting_products/files/) hoặc bất kỳ giải pháp lưu trữ nào khác (thậm chí bạn có thể chọn dropbox, nếu bạn muốn). Tất cả các tùy chọn này đều cung cấp các API để lưu/truy xuất các tệp.

Bộ nhớ thứ hai sẽ là cơ sở dữ liệu, để lập chỉ mục và kiểm soát tệp. Trên DB, đó có thể là MySQL, MSSQL hoặc một cơ sở dữ liệu không quan hệ, như Amazon DynamoDB hoặc SimpleSQL, bạn thiết lập liên kết đến tệp của bạn (liên kết http, đường dẫn đến tệp hoặc bất kỳ thứ gì như thế này).

Ngoài ra, trên DB, bạn có thể kiểm soát và lưu trữ bất kỳ siêu dữ liệu nào của tệp bạn muốn và chọn một hoặc nhiều giải pháp @ ebaxt để nhận được. Siêu dữ liệu có thể là các phiên bản cũ của tệp, các từ của tệp văn bản, kiểu máy ảnh và vị trí địa lý của ảnh, v.v. Tất nhiên nó phụ thuộc vào nhu cầu của bạn và nó sẽ thực sự được sử dụng như thế nào. Bạn có một số lượng lớn các tùy chọn, nhưng không có thêm thông tin về những gì bạn giả vờ làm là khó để đề xuất cho bạn một giải pháp.

On khu vực hướng dẫn Amazon (http://aws.amazon.com/articles/Amazon-S3?browse=1), bạn có thể tìm thấy nhiều giấy tờ về nó, như Netflix's Transition to High-Availability Storage Systems, Using the Java Persistence API with Amazon SimpleDBPetboard: An ASP.NET Sample Using Amazon S3 and Amazon SimpleDB

Trân .

8

Câu hỏi của bạn đặc biệt rộng, nhưng tôi cho rằng bạn đang nói về lưu trữ/tổ chức/phân cấp của các tệp (thay vì nền tảng/cơ sở hạ tầng).

Cách tiếp cận điển hình cho tổ chức là tải tệp lên cấu trúc phân cấp 3 cấp dựa trên tên tệp.

Ví dụ: Filename = "My_Video_12.mpg"

Mà sau đó sẽ được lưu trữ trong,

/M/Y/_/My_Video_12.mpg 

Hoặc một ví dụ khác, "a9usfkj_0001.jpg"

/a/9/u/a9usfkj_0001.jpg 

Bằng cách này, bạn kết thúc với một quản lý cấu trúc giúp dễ dàng định vị vị trí của tệp chỉ đơn giản dựa trên tên của nó. Nó cũng đảm bảo rằng các thư mục không phát triển đến một quy mô lớn và trở nên cực kỳ chậm để truy cập.

Chỉ là một ý tưởng, nhưng có thể có giá trị rõ ràng hơn đối với câu hỏi của bạn.

+0

Đây là một ý tưởng hay, cảm ơn bạn! – Staysee

+0

Câu trả lời hay. Cảm ơn! –

Các vấn đề liên quan