2013-01-14 22 views

Odpowiedz

7

Można użyć Guid na to:

string blobName = Guid.NewGuid().ToString(); 
4

Oprócz tego, co Sandrino powiedział (za pomocą identyfikatora GUID, które mają bardzo niskie prawdopodobieństwo jest powielany) można rozważyć kilka bibliotek innych firm, które generowania konfliktów wolne identyfikatorów przykład: Flake ID Generator

EDIT

Herve wskazał bardzo ważną funkcję Azure Blob, którą należy wziąć pod uwagę przy nazwach obiektów typu blob, mianowicie Równoważenie obciążenia platformy Azure Storage i partycji BLOB.

Azure zatrzymuje wszystkie obiekty typu blob w serwerach partycji. O tym, który serwer partycji powinien być używany do przechowywania określonego bloba, decyduje pojemnik blob i nazwa pliku blob. Niestety nie udało mi się znaleźć i dokumentacji opisującej algorytm używany do partycjonowania BLOBów.

Więcej informacji na temat architektury Azure Blob można znaleźć w artykule Windows Azure Storage Architecture Overview.

4

Nie ma nic, co generuje unikalną nazwę "na insert"; musisz wymyślić nazwę z wyprzedzeniem.

Wybierając nazwę swojego obiektu typu blob, należy zachować ostrożność podczas korzystania z dowolnego algorytmu generującego kolejny numer (na początku lub na końcu nazwy obiektu typu blob). Usługa Azure Storage wymaga nazwy do równoważenia obciążenia; używanie wartości sekwencyjnych może powodować rywalizację o dostęp/zapis do obiektów Azure Blobs, ponieważ może uniemożliwić systemowi Azure odpowiednie ładowanie - równoważąc jego pamięć masową. Otrzymasz 60 MB/s na każdym węźle (tj. Serwerze). Aby zapewnić prawidłowe równoważenie obciążenia i wykorzystać 60 MB/s na wielu węzłach magazynowania, musisz użyć losowych nazw dla obiektów typu blob. Zwykle używam Guidów, aby uniknąć tego problemu, tak jak zaleca Sandrino.

+0

To bardzo ważny punkt (+1). BTW, czy masz odniesienia do artykułu opisującego algorytm używany przez warstwę partycji do dystrybucji * blobów * w węzłach magazynujących blob? Myślę, że byłoby to bardzo korzystne z punktu widzenia pytania. – Tom

+0

Nie, ja nie; kiedyś był artykuł o tym, że to się dzieje (bez podstawowych szczegółów), ale nie mogę go już znaleźć ... Jeśli znajdę link, który opublikuję. Nie można kontrolować, co MS robi z partycjonowaniem i prawdopodobnie będzie dynamiczne w oparciu o wykorzystanie danych i innych danych najemców. Więc to, co robię, traktuję leżącą poniżej warstwę dostępu jako niedeterministyczną. –

+0

to wystarczy. Znalazłem tylko link do bloga opisującego architekturę Azure Storage, która jest następująca: http://blogs.msdn.com/b/windowsazurestorage/archive/2010/12/30/windows-azure-storage-architecture-overview.aspx – Tom