2010-12-14 42 views
6

Tôi hiện đang di chuyển ứng dụng Windows Azure sang Amazon AWS. Trong Windows Azure, chúng tôi đã sử dụng Lokad.Clout để truy cập mạnh mẽ vào Bộ nhớ Azure Blob. Ví dụ như thế này:Truy cập mạnh vào Amazon S3 bằng C#

foreach(var name in storage.List(CustomerBlobName.Prefix(country)) 
{ 
    var customer = storage.GetBlob(name); // strong type, no cast! 
    // do something with 'customer', snipped 
} 

Để biết thêm ví dụ chi tiết, xem their wiki.

Trong SDK AWS cho .NET bạn không nhận được quyền truy cập mạnh mẽ. Ví dụ để đạt được điều trên, bạn phải thực thi ListBojects và sau đó phân tích cú pháp khóa của mỗi đối tượng để tìm từng thuộc tính riêng lẻ của khóa (chúng ta thường sử dụng các khóa bao gồm một số thuộc tính).

Có bất kỳ S3 tương đương với Lokad.Cloud dành cho Azure không?

CẬP NHẬT: Do kích thước của các đối tượng, chúng tôi không thể sử dụng SimpleDB (với Simple Savant).

Trả lời

0

Tôi đã tự giải quyết bằng cách chuyển các tên lớp cụ thể đó trong Lokad.Cloud từ Azure sang S3

3

Thay vì sử dụng S3 cho điều này, tôi nghĩ bạn muốn sử dụng Amazon SimpleDB. Nó cho phép bạn lưu trữ dữ liệu ở định dạng cặp khóa-giá trị và cũng có thể chạy truy vấn trên dữ liệu.

Sau đó, để thực hiện những gì bạn đang tìm kiếm, tôi nghĩ những gì bạn muốn là Simple Savant.

Đơn giản Savant là một khung công tác đối tượng .NET bền vững cho Amazon SimpleDB được viết bằng C#.

Với Savant đơn giản, bạn có thể lưu các đối tượng như thế này:

var savant = new SimpleSavant(AwsAccessKeyId, AwsSecretAccessKey); 
var customer = new Customer 
    {Name = "Frank Berry", PhoneNumbers = new List<string> {"770-555-1234", "678-555-5678"} }; 
savant.Put(customer); 

Và bạn có thể lấy đối tượng như thế này:

var frankId = new Guid("50a60862-09a2-450a-8b7d-5d585662990b"); 
Person frank = savant.Get<Person>(frankId); // strong type, no cast! 

Hope this helps!

+0

Cảm ơn! Tuy nhiên, tôi nên làm rõ rằng việc sử dụng SimpleDB không phải là một lựa chọn trong trường hợp của chúng tôi. Các đối tượng quá lớn để được lưu trữ trong SimpleDB. – Yrlec

1

Đây không phải là điều mà S3 đã được tối ưu hóa.

Bạn nên sử dụng S3 để lưu trữ các đốm màu và cơ sở dữ liệu (SimpleDB, Sql Server, v.v.) để 'lập chỉ mục' bộ nhớ S3 của bạn. Sử dụng cơ sở dữ liệu để tìm những gì bạn đang tìm kiếm, lấy đối tượng từ S3, thực hiện thay đổi, sau đó lưu lại.

+0

S3 không được tối ưu hóa để truy cập mạnh mẽ theo cách nào? Một khóa có thể là tổng hợp của một số thuộc tính khác nhau và tự động tạo khóa từ các thuộc tính này thuận tiện hơn nhiều so với việc phải tạo khóa theo cách thủ công. – Yrlec

+0

@ Yrlec - có lẽ tôi hiểu lầm chính xác những gì bạn muốn làm, nhưng khi bạn mô tả chính mình, liệt kê rất nhiều phím S3 là tẻ nhạt và chậm. –

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