Usługa Azure Blob Storage a usługa plików [zamknięta]

132

Proszę, popraw moje błędy. Z moich dotychczasowych lektur na ten temat wynika, że ​​zarówno usługa Azure Blob Storage, jak i File Service oferują możliwość przechowywania plików i folderów (rozumiem, że obiekty blob mogą przechowywać dowolny obiekt binarny, ale każdy serializowany strumień binarny to po prostu plik na koniec dnia) w strukturze hierarchicznej, która naśladuje system plików.

Jedynie interfejs API umożliwiający dostęp do nich różni się nieco, ponieważ usługa plików umożliwia wysyłanie zapytań do źródła przy użyciu funkcji podobnych do We / Wy plików Win32, a także korzystania z interfejsu API REST.

Dlaczego miałbyś wybierać jeden, a nie inny, gdybyś chciał, aby Twoja aplikacja przechowywała niektóre pliki, których właścicielami są użytkownicy Twojej aplikacji?

Chłodnica wodna v2
źródło
6
Czy przeczytałeś ten wpis na blogu przygotowany przez zespół usługi Azure Storage: blogs.msdn.com/b/windowsazurestorage/archive/2014/05/12/… ? Przewiń w dół do sekcji, w której wyjaśniono, kiedy skorzystać z danej usługi.
Przestałem
3
Tak, przeczytałem ten artykuł przed wysłaniem. Jestem na bardzo wczesnym etapie przemyślenia, a moje rozumienie nie jest jeszcze dobrze ukształtowane. Nadal jestem zdezorientowany. Rozumiem wszystko, co jest napisane we wszystkich przeczytanych artykułach, ale próbuję dowiedzieć się, czego najlepiej użyć, jeśli chcę przechowywać pliki należące do użytkowników dla aplikacji, którą projektuję.
Water Cooler v2
Myślę, że sprowadza się to do tego, co chcesz zrobić z tymi plikami użytkownika? Czy będą w jakiś sposób przesyłane strumieniowo (przez przeglądarkę internetową itp.), Czy też będą dalej przetwarzane? Jeśli jest poprzedni, to przechowywanie obiektów blob ma sens. Jeśli jest to drugie, usługa plików ma sens.
Zatrzymano
1
Chodzi o to: chcę, aby użytkownik mógł przesyłać i pobierać własne pliki, a także udostępniać niektóre z nich innym osobom w swojej grupie kontaktów (aby mogli tylko pobierać / czytać). Mógłbym w tym celu użyć sygnatur dostępu współdzielonego (SAS) z magazynem obiektów Blob, ale to nie spełniłoby moich wymagań dotyczących udostępniania. Szedłem w kierunku rozwiązania, w którym moja aplikacja / usługa przeprowadzała całe uwierzytelnianie i nie ujawniała użytkownikowi rzeczywistego zasobu pamięci. W tym kontekście zarówno usługa plików, jak i magazyn obiektów Blob robią to samo. Nikt nie zapewnia mi większego komfortu niż drugi.
Water Cooler v2
@ WaterCoolerv2 Pomożesz mi wybór między lazurowym przechowywania plików vs przechowywania blob Co pan zawarta
Heemanshu Bhalla

Odpowiedzi:

111

Kilka elementów na Twoje pytanie:

  1. Nie można zainstalować usługi Azure Blob Storage jako udziału natywnego na maszynie wirtualnej.
  2. Usługa Azure Blob Storage nie jest hierarchiczna poza kontenerami. Możesz dodać pliki, które zawierają znaki / lub \, które są interpretowane jako foldery przez wiele aplikacji odczytujących magazyn obiektów blob.
  3. Usługa Azure File Service zapewnia interfejs protokołu SMB do usługi Azure Blob Storage, który rozwiązuje problem z (1).

Jeśli tworzysz nową aplikację, skorzystaj z natywnego interfejsu API platformy Azure bezpośrednio w usłudze Blob Storage.

Jeśli przenosisz istniejącą aplikację, która musi udostępniać pliki, użyj usługi Azure File Service.

Należy pamiętać, że istnieje kilka funkcji protokołu SMB, których usługa Azure File Service nie obsługuje .

Simon W.
źródło
1
Bardzo dziękuję, Simon. Kilka rzeczy na temat Twojej odpowiedzi. Widzisz, pod koniec dnia chcę efektu końcowego. Z tego punktu widzenia zadałem to pytanie. Z punktu widzenia wyniku końcowego, argumenty nr 1 i 3 na liście nie są istotne. W ogóle się z tobą nie kłócę. :-) Twoja odpowiedź jest niezwykle pomocna. Próbuję wam tylko opowiedzieć o procesie myślowym, który doprowadził mnie do zadania tego pytania. Argument nr 2 nie jest problemem, ponieważ przedstawia problem i mówi, że to nie jest problem. Przypuśćmy, że chciałbym przechowywać pliki należące do użytkowników, zastanawiałem się, dlaczego wolę jeden od drugiego?
Water Cooler v2
Zobacz dwa punkty po numerowanej liście - to powinien być twój przewodnik.
Simon W,
1
@SimonW - dwa punkty za przewodnikiem to „sposób na zrobienie tego”. Jednak nie są one absolutne. W ramach tego scenariusza są bardziej jak sugestie. Istnieją przypadki, w których nie chcesz bezpośrednio korzystać z interfejsu API platformy Azure, nawet z nową aplikacją. Podobnie są przypadki, w których możesz chcieć przerobić istniejące aplikacje, aby używały interfejsu API platformy Azure.
David Makogon,
Czy jest między nimi różnica w wydajności IOPS?
iamnicoj
@SimonW - czy możesz rozwinąć punkt 3 powyżej? Czy jest to sposób na zamontowanie obiektu Blob jako udziału plików SBM, czy w jakiś sposób uzyskanie do niego dostępu jako „dysku”?
Neil Weicher,
39

Kilka innych kwestii do rozważenia:

  • Cena: Magazyn obiektów blob jest znacznie tańszy niż magazyn plików.
  • Przenośność: w przypadku magazynu obiektów blob, jeśli w przyszłości zdecydujesz się na migrację na platformę różnicową, być może będziesz musiał zmienić kod aplikacji, ale dzięki usłudze File Storage możesz przenieść swoją aplikację na dowolną inną platformę obsługującą SMB (zakładając, że używasz natywnych interfejsów API systemu plików w Twoja aplikacja)
Dharmendar Kumar „DK”
źródło
4
Cena tutaj jest ogromnym czynnikiem (obecnie różnica wynosi około 5x), warto również wspomnieć o limicie 5 TB do przechowywania plików.
TZHX
Stary post, ale dziś po raz pierwszy go czytam. Standardowy poziom cenowy ma domyślnie limit 5 TB, ale można go zmienić za pomocą przełącznika na limit 100 TB. Uwaga * Włączenie dużych udziałów plików na koncie jest nieodwracalnym procesem na koncie usługi Azure Storage. docs.microsoft.com/azure/storage/files/ ...
Ruwd
11

Usługa Azure File Service jest bardziej ukierunkowana na wewnętrzną obsługę plików. W przypadku wewnętrznego mam na myśli montowanie katalogu na maszynie wirtualnej w chmurze lub lokalnie, aby można go było załadować na zapleczu (protokół oparty na SMB).

W przypadku udostępniania plików użytkownikom końcowym (sieci Web lub aplikacjom) prawdopodobnie bardziej sensowne jest korzystanie z magazynu obiektów blob, ponieważ upraszcza to pobieranie za pośrednictwem adresu URL i zabezpieczanie pobierania za pomocą sygnatur dostępu współdzielonego.

W tym poście podano więcej szczegółów dotyczących porównania (na dole): https://blogs.msdn.microsoft.com/windowsazurestorage/2014/05/12/introducing-microsoft-azure-file-service/


źródło
Cześć Clemens Schotte, co oznacza, że ​​przechowywanie obiektów blob umożliwia pobieranie za pośrednictwem adresu URL Czy masz na myśli, że przechowywanie plików nie zapewnia adresów URL
Heemanshu Bhalla
2
Niektóre rzeczy uległy zmianie od czasu tych postów, ale usługa plików obsługuje pobieranie za pośrednictwem adresu URL i innych interfejsów API REST ( docs.microsoft.com/en-us/azure/storage/common/… ). Ponadto wydaje się, że zabezpieczenia są na poziomie konta magazynu, więc powinny być bardzo podobne między obiektami Blob i usługą plików ( docs.microsoft.com/en-us/azure/storage/common/ ... ).
KJ