Obiekt myQNAPcloud
myQNAPcloud Object obsługuje zarówno żądania w stylu ścieżkowym (path-style), jak i wirtualnym (virtual-style), podobnie jak AWS S3. Wymagana jest unikatowa nazwa hosta (na przykład s3.us-east-1.myqnapcloud.io zamiast s3.amazonaws.com). Zalecamy korzystanie z żądań w stylu ścieżkowym, jak pokazano we wszystkich przykładach w tym przewodniku (np. http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object), ponieważ zapewniają one większą elastyczność w nazewnictwie zasobników, pozwalając uniknąć konfliktów nazw domen.
W przeciwieństwie do modelu silnej spójności AWS S3, myQNAPcloud Object zapewnia widok „zawsze spójny" dla wszystkich operacji. Gwarantuje to, że każda operacja następująca po innej da spójne wyniki. Na przykład po usunięciu obiektu (operacja DELETE) kolejne żądanie HEAD zawsze potwierdzi usunięcie obiektu, eliminując potrzebę dodatkowego programowania w celu oczekiwania na zakończenie operacji.
myQNAPcloud Object obsługuje zarówno tryb autonomiczny, jak i wersje podpisu 2 i 4, zgodne z AWS S3, zarówno dla nagłówków, jak i parametrów zapytań. Choć wersja 4 podpisu oferuje lepsze zabezpieczenia, wymaga większych zasobów obliczeniowych ze względu na koszty obliczania skrótu SHA256. Jeśli wydajność jest kluczowa, można użyć wersji 2 podpisu, a integralność danych zapewnia MD5 (zwracany jako nagłówek ETag).
Dla żądań podpisanych w wersji 4 wszystkie regiony są obsługiwane w przypadku żądań podpisanych myQNAPcloud Object.
myQNAPcloud Object nie obsługuje podpisywania sygnatur dla przesyłania plików przez przeglądarkę ani żądań formularzy HTML, ponieważ operacje te nie są obecnie obsługiwane.
W przypadku podpisywania w wersji 2 następujące klucze podzasobów są określone jako parametry zapytań w żądaniach:
Te parametry zapytań muszą być uwzględnione podczas obliczania podpisu dla operacji PutObject i DeleteBucket.
Wszędzie tam, gdzie to możliwe, myQNAPcloud Object używa odpowiedzi na błędy zgodnych z AWS S3. W celu rozszerzenia funkcjonalności mogą być również udostępniane dodatkowe kody błędów.
Obiekt myQNAPcloud obsługuje następujące kody błędów TCP:
myQNAPcloud Object obsługuje funkcję pobierania zestawu tagów obiektu, gdy obiekt:
Treść odpowiedzi:
Treść odpowiedzi:
myQNAPcloud Object obsługuje następujące funkcje:
Treść odpowiedzi:
W tym przykładzie istniejący obiekt ma już wartość tagu „key5" – „value5". Można dołączyć nową parę tagów wraz z istniejącą parą.
Treść odpowiedzi:
Aby dodać tagi do innej wersji za pomocą PUT, należy użyć parametru zapytania versionId.
Usuwa cały zestaw tagów z określonego obiektu.
Treść odpowiedzi:
Aby usunąć tagi innej wersji, należy użyć parametru zapytania versionId.
myQNAPcloud Object obsługuje funkcję pobierania zestawu tagów obiektu, gdy obiekt:
Treść odpowiedzi:
Treść odpowiedzi:
myQNAPcloud Object obsługuje następujące funkcje:
Treść odpowiedzi:
W tym przykładzie istniejący obiekt ma już wartość tagu „key5" – „value5". Można dołączyć nową parę tagów wraz z istniejącą parą.
Treść odpowiedzi:
Aby dodać tagi do innej wersji za pomocą PUT, należy użyć parametru zapytania versionId.
Usuwa cały zestaw tagów z określonego obiektu.
Treść odpowiedzi:
Aby usunąć tagi innej wersji, należy użyć parametru zapytania versionId.
myQNAPcloud Object to chmurowa usługa przechowywania obiektów zaprojektowana w celu zapewnienia wysokiej wydajności, niezawodności i bezpieczeństwa danych dla szerokiego zakresu aplikacji i przypadków użycia. Usługa ta jest w pełni zgodna z interfejsem API Amazon Web Service Simple Storage Service (AWS S3), co gwarantuje bezproblemową integrację z aplikacjami i urządzeniami bramy zgodnymi z S3.
myQNAPcloud Object jest dostosowany do potrzeb osób fizycznych i organizacji poszukujących ekonomicznej i wydajnej infrastruktury przechowywania danych. Zaprojektowany do współpracy z aplikacjami zgodnymi z S3, myQNAPcloud Object umożliwia użytkownikom korzystanie ze znanych narzędzi i przepływów pracy, czerpiąc jednocześnie korzyści z niezawodności i elastyczności ekosystemu QNAP.
myQNAPcloud Object jest dostosowany do potrzeb osób fizycznych i organizacji poszukujących ekonomicznej i wydajnej infrastruktury przechowywania danych. Zaprojektowany do współpracy z aplikacjami zgodnymi z S3, myQNAPcloud Object umożliwia użytkownikom korzystanie ze znanych narzędzi i przepływów pracy, czerpiąc jednocześnie korzyści z niezawodności i elastyczności ekosystemu QNAP.
- Zgodność: myQNAPcloud Object jest zaprojektowany tak, aby być w pełni zgodny z interfejsem API AWS S3, dzięki czemu istniejące aplikacje zgodne z AWS S3 mogą działać bezproblemowo.
- Wydajność: myQNAPcloud Object oferuje wysokowydajne rozwiązanie do przechowywania danych, zoptymalizowane pod kątem niezawodności i efektywności.
Choć myQNAPcloud Object jest ściśle dopasowany do AWS S3, niektóre funkcje mogą być rozszerzone lub zaimplementowane w odmienny sposób. Niniejszy przewodnik ma na celu wyjaśnienie tych niuansów, aby pomóc użytkownikom w pełni wykorzystać potencjał myQNAPcloud Object.
W przewodniku użyto przykładów dotyczących dostępu do zasobników w określonych regionach myQNAPcloud Object. Aby uzyskać więcej informacji na temat punktów końcowych i adresów URL usługi dla poszczególnych regionów, zapoznaj się z sekcją „Adresy URL usługi dla regionów przechowywania myQNAPcloud Object".
W przewodniku użyto przykładów dotyczących dostępu do zasobników w określonych regionach myQNAPcloud Object. Aby uzyskać więcej informacji na temat punktów końcowych i adresów URL usługi dla poszczególnych regionów, zapoznaj się z sekcją „Adresy URL usługi dla regionów przechowywania myQNAPcloud Object".
uwaga
- Regionalne adresy URL: Podczas uzyskiwania dostępu do zasobników upewnij się, że używasz adresów URL właściwych dla regionu przechowywania myQNAPcloud Object, w którym został utworzony Twój zasobnik. Użycie nieprawidłowego adresu URL może pozwolić na realizację żądań GET, jednak może powodować błędy podczas operacji PUT lub DELETE. Zapoznaj się z [Service URLs for myQNAPcloud Object Storage Regions].
- AWS IAM: W przeciwieństwie do AWS, myQNAPcloud Object nie obsługuje AWS IAM (Identity and Access Management). W związku z tym niniejszy przewodnik skupia się wyłącznie na zgodności z API S3 i nie opisuje możliwości związanych z IAM.
Oznaczanie hosta
myQNAPcloud Object obsługuje zarówno żądania w stylu ścieżkowym (path-style), jak i wirtualnym (virtual-style), podobnie jak AWS S3. Wymagana jest unikatowa nazwa hosta (na przykład s3.us-east-1.myqnapcloud.io zamiast s3.amazonaws.com). Zalecamy korzystanie z żądań w stylu ścieżkowym, jak pokazano we wszystkich przykładach w tym przewodniku (np. http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object), ponieważ zapewniają one większą elastyczność w nazewnictwie zasobników, pozwalając uniknąć konfliktów nazw domen.
Zawsze spójny
W przeciwieństwie do modelu silnej spójności AWS S3, myQNAPcloud Object zapewnia widok „zawsze spójny" dla wszystkich operacji. Gwarantuje to, że każda operacja następująca po innej da spójne wyniki. Na przykład po usunięciu obiektu (operacja DELETE) kolejne żądanie HEAD zawsze potwierdzi usunięcie obiektu, eliminując potrzebę dodatkowego programowania w celu oczekiwania na zakończenie operacji.
Uwierzytelnianie żądań
myQNAPcloud Object obsługuje zarówno tryb autonomiczny, jak i wersje podpisu 2 i 4, zgodne z AWS S3, zarówno dla nagłówków, jak i parametrów zapytań. Choć wersja 4 podpisu oferuje lepsze zabezpieczenia, wymaga większych zasobów obliczeniowych ze względu na koszty obliczania skrótu SHA256. Jeśli wydajność jest kluczowa, można użyć wersji 2 podpisu, a integralność danych zapewnia MD5 (zwracany jako nagłówek ETag).
Dla żądań podpisanych w wersji 4 wszystkie regiony są obsługiwane w przypadku żądań podpisanych myQNAPcloud Object.
myQNAPcloud Object nie obsługuje podpisywania sygnatur dla przesyłania plików przez przeglądarkę ani żądań formularzy HTML, ponieważ operacje te nie są obecnie obsługiwane.
W przypadku podpisywania w wersji 2 następujące klucze podzasobów są określone jako parametry zapytań w żądaniach:
- append
- compose
- force_delete=true
Te parametry zapytań muszą być uwzględnione podczas obliczania podpisu dla operacji PutObject i DeleteBucket.
Odpowiedzi na błędy
Wszędzie tam, gdzie to możliwe, myQNAPcloud Object używa odpowiedzi na błędy zgodnych z AWS S3. W celu rozszerzenia funkcjonalności mogą być również udostępniane dodatkowe kody błędów.
Kody błędów HTTP
| Kod błędu | Opis obiektu myQNAPcloud | Kod stanu HTTP |
|---|---|---|
| Niedostępne | Tymczasowo niedostępne | 503 |
| Nieodwracalne | Dane nieodwracalne | |
| Niezaimplementowane | Nie zaimplementowano | 501 |
| Nie znaleziono encji bazy danych | Nie ma takiej encji | 404 |
| Znaleziono encję bazy danych | Encja już istnieje | 409 |
| Błąd rozłączenia | Połączenie zamknięte | 410 |
| Błąd wewnętrzny serwera | Błąd wewnętrzny: Wystąpił błąd wewnętrzny. Skontaktuj się z pomocą techniczną. | 500 |
| Dostęp zabroniony | Odmowa dostępu | 403 |
| Dostęp zabroniony | ||
| Konto nieaktywowane | ||
| Problem z kontem | ||
| Blokada uwierzytelniania: Zbyt wiele prób dostępu do konta przy użyciu nieprawidłowych danych uwierzytelniających. Spróbuj ponownie za pięć minut. | ||
| Nieprawidłowy identyfikator klucza dostępu: Podany identyfikator klucza dostępu AWS nie istnieje w naszych rekordach. | ||
| Nieprawidłowy kod uwierzytelniania: Kod uwierzytelniania dla urządzenia jest nieprawidłowy. | ||
| Zbyt duże odchylenie czasu żądania: Różnica między czasem żądania a bieżącym czasem jest zbyt duża. | ||
| Nieprawidłowy stan obiektu: Operacja jest nieprawidłowa dla bieżącego stanu obiektu. | ||
| Nieprawidłowe żądanie | Zniekształcony nagłówek autoryzacji | 400 |
| Błąd parametrów zapytania autoryzacji | ||
| Nieprawidłowy skrót: Podana wartość Content-MD5 nie jest zgodna z otrzymaną. | ||
| Nieprawidłowe żądanie: Wystąpił błąd podczas analizowania żądania HTTP. | ||
| Niekompletna sygnatura: Żądanie musi zawierać sygnaturę zgodną ze standardami AWS. | ||
| Nieprawidłowa akcja | ||
| Nieprawidłowy argument | ||
| Nieprawidłowy skrót: Podana wartość Content-MD5 była nieprawidłowa. | ||
| Nieprawidłowe dane wejściowe | ||
| Nieprawidłowa wartość parametru: Podana wartość parametru wejściowego jest nieprawidłowa lub spoza zakresu. | ||
| Nieprawidłowe żądanie | ||
| Zniekształcona polityka | ||
| Zniekształcony dokument polityki | ||
| Naruszenie polityki haseł | ||
| Błąd walidacji | ||
| Niezgodność X-Amz-Content-SHA256: Podany nagłówek „x-amz-content-sha256" nie jest zgodny z obliczoną wartością. | ||
| Szyfrowanie niedozwolone: Klucze szyfrowania dostarczone przez użytkownika nie są dozwolone w tej operacji. | ||
| Obiekt był przechowywany przy użyciu szyfrowania po stronie serwera. Aby pobrać obiekt, należy podać prawidłowe parametry. | ||
| Encja zbyt duża: Proponowane przesyłanie przekracza maksymalny dozwolony rozmiar. | ||
| Encja zbyt mała: Proponowane przesyłanie jest mniejsze niż minimalny dozwolony rozmiar. | ||
| Niedozwolone żądanie zgodności | ||
| Wyjątek niedozwolonej konfiguracji wersjonowania: Konfiguracja wersjonowania podana w żądaniu jest nieprawidłowa. | ||
| Niekompletna treść: Nie podano liczby bajtów określonej w nagłówku HTTP Content-Length. | ||
| Nieprawidłowe żądanie ACL: Podczas ustawiania list ACL należy podać tylko nagłówki ACL lub treść XML, nie obie opcje jednocześnie. | ||
| Nieprawidłowy argument | ||
| Nieprawidłowa nazwa zasobnika: Podany zasobnik jest nieprawidłowy. | ||
| Błąd nieprawidłowego algorytmu szyfrowania: Podane żądanie szyfrowania jest nieprawidłowe. Obsługiwana wartość: AES256. | ||
| Nieprawidłowa kolejność części: Lista części nie była w kolejności rosnącej. Części muszą być uporządkowane według numeru części. | ||
| Nieprawidłowa część: Nie można znaleźć jednej lub więcej podanych części. Część mogła nie zostać przesłana lub podany tag encji może nie odpowiadać tagowi encji części. | ||
| Nieprawidłowy dokument polityki: Zawartość formularza nie spełnia warunków określonych w dokumencie polityki. | ||
| Błąd zbyt długiego klucza: Twój klucz jest zbyt długi. | ||
| Ten sam właściciel zasobnika rejestrowania: Docelowy zasobnik rejestrowania musi mieć tego samego właściciela, co rejestrowany zasobnik. | ||
| Zniekształcony XML: Podany kod XML jest nieprawidłowo sformułowany lub nie przeszedł walidacji względem opublikowanego schematu. | ||
| Zbyt duże metadane: Nagłówki metadanych przekraczają maksymalny dozwolony rozmiar metadanych. | ||
| Przekroczenie limitu czasu żądania: Połączenie slotu z serwerem nie zostało odczytane ani zapisane w czasie przekroczenia limitu czasu. | ||
| Zbyt wiele zasobników: Podjęto próbę utworzenia większej liczby zasobników niż dozwolona. | ||
| Zbyt wiele składników: Obiekt złożony nie może mieć więcej niż 1024 składniki. | ||
| Nie można rozpoznać uprawnienia na podstawie adresu e-mail: Podany adres e-mail nie pasuje do żadnego konta w rejestrze. | ||
| Przekroczono limit przydziału miejsca: Twoje konto przekroczyło limit miejsca do przechowywania. | ||
| Konto zasobnika nieaktywne: Konto będące właścicielem tego zasobnika jest nieaktywne. | ||
| Zniknięte | Połączenie zamknięte: Połączenie sieciowe zostało zamknięte. | 410 |
| Nie można przetworzyć encji | Dane nieodwracalne: Dane w żądaniu są nieodwracalne. Skontaktuj się z pomocą techniczną. | 422 |
| Konflikt | Konflikt usuwania | 409 |
| Encja już istnieje | ||
| Encja tymczasowo niemożliwa do zmodyfikowania: Encja jest tymczasowo niemożliwa do zmodyfikowania. Spróbuj ponownie później. | ||
| Przekroczono limit | ||
| Operacja przerwana: Trwa konfliktująca operacja warunkowa na tym zasobie. Spróbuj ponownie. | ||
| Zasobnik już istnieje | ||
| Zasobnik nie jest pusty | ||
| Ustawienia zgodności zablokowane: Ustawienia zgodności są teraz zablokowane i nie można ich zmienić. | ||
| Nie znaleziono | Nie ma takiej encji | 404 |
| Brak takiej konfiguracji cyklu życia: Konfiguracja cyklu życia nie istnieje. | ||
| Brak takiego zasobnika: Podany zasobnik nie istnieje. | ||
| Brak polityki dla zasobnika: Polityka zasobnika nie istnieje. | ||
| Brak takiego klucza: Podany klucz nie istnieje. | ||
| Brak konfiguracji replikacji: Konfiguracja replikacji nie istnieje. | ||
| Błąd braku zestawu tagów: Z zasobnikiem nie jest skojarzony żaden zestaw tagów. | ||
| Brak takiego przesyłania: Podane przesyłanie nie istnieje. Identyfikator przesyłania może być nieprawidłowy lub przesyłanie mogło zostać przerwane lub ukończone. | ||
| Brak takiej wersji: Podana wersja nie istnieje. | ||
| Nie zaimplementowano | Nie zaimplementowano: Podany nagłówek sugeruje funkcjonalność, która nie jest zaimplementowana. | 501 |
| Usługa niedostępna | Tymczasowo niedostępne: Zasoby dla tej operacji są tymczasowo niedostępne. Spróbuj ponownie później. | 503 |
| Znaleziono | Klucz już istnieje | 302 |
| Metoda niedozwolona | Metoda niedozwolona: Ta metoda jest dozwolona wyłącznie dla właściciela konta. | 405 |
| Metoda niedozwolona: Podana metoda jest niedozwolona dla tego zasobu. | ||
| Wymagana długość | Brak długości treści: Musisz podać nagłówek HTTP Content-Length. | 411 |
Kody błędów TCP
Obiekt myQNAPcloud obsługuje następujące kody błędów TCP:
- Nieoczekiwany koniec pliku
- Przerwany potok
- Połączenie zresetowane przez partnera
Nieobsługiwane w obiekcie myQNAPcloud
| Operacja | Opis |
|---|---|
| SOAP | AWS S3 wycofało obsługę SOAP, a obiekt myQNAPcloud nie obsługuje żadnych operacji SOAP. |
Operacje na zasobnikach obejmują: usuwanie, zmianę nazwy i rejestrowanie zasobników, a także obsługę współdzielenia zasobów między źródłami (CORS), politykę cyklu życia, blokadę obiektów i zgodność.
AWS S3 nie pozwala na usunięcie zasobnika, jeśli zawiera on obiekty, które nie zostały usunięte.
myQNAPcloud Object udostępnia opcję wymuszonego usuwania, która najpierw usuwa wszystkie obiekty w zasobniku, a następnie usuwa sam zasobnik. Usuwanie obiektów podlega wymaganiom dotyczącym polityki i zgodności dla danego zasobnika.
Aby skorzystać z opcji wymuszonego usuwania, wystarczy dodać ją jako parametr zapytania. Na przykład:
AWS S3 nie obsługuje zmiany nazwy zasobników. Obsługuje jedynie zmianę nazwy obiektów w zasobniku.
myQNAPcloud Object obsługuje zmianę nazwy zasobników. Aby zmiana nazwy zakończyła się powodzeniem, nowa nazwa zasobnika nie może być już używana. Wywołujący musi posiadać uprawnienie polityki s3:CreateBucket, aby zmienić nazwę zasobnika.
Aby zmienić nazwę zasobnika, należy użyć metody HTTP MOVE wraz z polem nagłówka „Destination" zawierającym nową nazwę zasobnika. Na przykład:
myQNAPcloud Object obsługuje nagłówek „x-amz-mfa" podczas:
myQNAPcloud Object nie wymaga nagłówka „x-amz-mfa", jeśli poświadczenia dostępu użytkownika podpisującego żądanie zostały uwierzytelnione przy użyciu MFA. myQNAPcloud Object obsługuje wyłącznie wirtualne urządzenia MFA.
Standardowe AWS S3 obsługuje tylko 100 zasobników.
myQNAPcloud Object umożliwia posiadanie maksymalnie 1000 zasobników na konto, a liczba ta może zostać zwiększona po skontaktowaniu się z działem obsługi klienta myQNAPcloud Object.
myQNAPcloud Object obsługuje rejestrowanie zasobników, które tworzy tekstowy plik dziennika wszystkich dostępów do zasobnika. Format pliku dziennika jest identyczny z formatem pliku dziennika AWS S3.
Rejestrowanie zasobników w myQNAPcloud Object nie wymaga żadnych ustawień uprawnień ACL do przechowywania dzienników w docelowym zasobniku. Chociaż można podać ustawienia uprawnień w żądaniu rejestrowania lub w ACL, nie są one wymagane do działania rejestrowania w myQNAPcloud Object. Jednak zasobnik będący celem dla plików dziennika musi znajdować się na tym samym koncie co rejestrowany zasobnik.
W celu zapewnienia zgodności z dostępem przeglądarki do myQNAPcloud Object jako serwera WWW, serwer myQNAPcloud Object będzie zwracał nagłówki CORS, gdy w żądaniu HTTP podany zostanie nagłówek „Origin". Ponadto serwer obsługuje metodę HTTP OPTIONS zarówno dla zasobników, jak i obiektów, zwracając nagłówki CORS potrzebne do testu wstępnego przeglądarki przed uzyskaniem dostępu do myQNAPcloud Object.
W odróżnieniu od AWS, myQNAPcloud Object zwraca ustawienia umożliwiające przeglądarce pełny dostęp do myQNAPcloud Object. W związku z tym myQNAPcloud Object nie obsługuje funkcji AWS umożliwiających wykonanie operacji PUT i GET na zasobniku z parametrem „cors" w adresie URL. Należy pamiętać, że zezwolenie przeglądarce na pełny dostęp do danych nie wpływa na bezpieczeństwo dostępu do żadnych obiektów, a wszystkie polityki dostępu będą nadal egzekwowane.
Poniżej przedstawiono nagłówki HTTP zwracane domyślnie, gdy w żądaniu HTTP podany zostanie nagłówek „Origin":
Funkcja cyklu życia ustanawia politykę cyklu życia z regułami definiującymi działania, które mają być podejmowane przez myQNAPcloud Object w trakcie cyklu życia obiektu. Funkcja ta eliminuje konieczność ręcznego usuwania obiektu po upływie okresu przechowywania.
Ustawienia cyklu życia dla zasobnika są konfigurowane za pomocą polecenia „put-bucket-lifecycle-configuration". Na przykład:
Oto kolejny przykład:
To wywołanie nie zwraca treści odpowiedzi.
Ustawienia cyklu życia dla zasobnika można pobrać za pomocą polecenia „get-bucket-lifecycle-configuration". Na przykład:
Oto kolejny przykład:
Ustawienia cyklu życia dla zasobnika można usunąć za pomocą polecenia „delete-bucket-lifecycle". Na przykład:
To wywołanie nie zwraca treści odpowiedzi.
myQNAPcloud Object obsługuje blokadę obiektów, która uniemożliwia usunięcie lub nadpisanie wersji obiektów przez określony czas lub bezterminowo.
Ustawienia blokady obiektów dla zasobnika są określane za pomocą parametru zapytania „?object-lock" wraz z ustawieniami blokady obiektów jako treścią XML w żądaniu. Na przykład:
Ustawienia blokady obiektów dla bucketu można pobrać, wysyłając żądanie GET dla bucketu z parametrem zapytania „?object-lock". Na przykład:
Treść odpowiedzi:
Ustawienia blokady obiektów dla poszczególnych obiektów opisano w sekcji Operacje na obiektach.
Ustawienia blokady obiektów dla bucketu można wyczyścić przy użyciu parametru zapytania „?object-lock". Na przykład:
Treść odpowiedzi:
myQNAPcloud Object obsługuje politykę zgodności, która zapobiega usuwaniu obiektów i dostarcza dodatkowych informacji potwierdzających, że oryginalne dane nie zostały zmodyfikowane od momentu zapisu. Funkcja zgodności może być wymagana ze względu na określone wymogi regulacyjne, a ponadto jest przydatna w celu zapobiegania przypadkowemu usunięciu danych.
Zgodność różni się od ustawień blokady obiektów dla bucketu.
Politykę zgodności można ustawić na dowolnym buckecie, obejmując nią wszystkie obiekty przechowywane w tym buckecie. Politykę zgodności bucketu określa się za pomocą następujących tagów XML.
Ustawienia zgodności dla bucketu są określane przy użyciu parametru zapytania „?compliance" wraz z ustawieniami zgodności jako treścią XML w żądaniu. Na przykład:
Po włączeniu zgodności dla bucketu polityka jest natychmiast stosowana do wszystkich obiektów w tym buckecie. Próba usunięcia obiektu przed upływem okresu przechowywania spowoduje zwrócenie błędu.
Ustawienia zgodności dla bucketu można pobrać, wysyłając żądanie GET dla bucketu z parametrem zapytania „?compliance". Na przykład:
Treść odpowiedzi:
Ustawienia zgodności dla poszczególnych obiektów opisano w sekcji Operacje na obiektach.
Wymuszone usuwanie zasobnika
AWS S3 nie pozwala na usunięcie zasobnika, jeśli zawiera on obiekty, które nie zostały usunięte.
myQNAPcloud Object udostępnia opcję wymuszonego usuwania, która najpierw usuwa wszystkie obiekty w zasobniku, a następnie usuwa sam zasobnik. Usuwanie obiektów podlega wymaganiom dotyczącym polityki i zgodności dla danego zasobnika.
Aby skorzystać z opcji wymuszonego usuwania, wystarczy dodać ją jako parametr zapytania. Na przykład:
Kod:
DELETE http://s3.us-east-1.myqnapcloud.io/my-bucket?force_delete=true HTTP/1.1
Zmiana nazwy zasobnika
AWS S3 nie obsługuje zmiany nazwy zasobników. Obsługuje jedynie zmianę nazwy obiektów w zasobniku.
myQNAPcloud Object obsługuje zmianę nazwy zasobników. Aby zmiana nazwy zakończyła się powodzeniem, nowa nazwa zasobnika nie może być już używana. Wywołujący musi posiadać uprawnienie polityki s3:CreateBucket, aby zmienić nazwę zasobnika.
Aby zmienić nazwę zasobnika, należy użyć metody HTTP MOVE wraz z polem nagłówka „Destination" zawierającym nową nazwę zasobnika. Na przykład:
Kod:
MOVE http://s3.us-east-1.myqnapcloud.io/my_old_bucket HTTP/1.1
Destination: my_new_bucket
Usuwanie z uwierzytelnianiem wieloskładnikowym MFA (Multi-Factor Authentication)
myQNAPcloud Object obsługuje nagłówek „x-amz-mfa" podczas:
- konfigurowania wersjonowania w zasobniku lub
- usuwania obiektów za pomocą żądań usunięcia obiektów zgodnych z AWS S3.
myQNAPcloud Object nie wymaga nagłówka „x-amz-mfa", jeśli poświadczenia dostępu użytkownika podpisującego żądanie zostały uwierzytelnione przy użyciu MFA. myQNAPcloud Object obsługuje wyłącznie wirtualne urządzenia MFA.
Maksymalna liczba zasobników
Standardowe AWS S3 obsługuje tylko 100 zasobników.
myQNAPcloud Object umożliwia posiadanie maksymalnie 1000 zasobników na konto, a liczba ta może zostać zwiększona po skontaktowaniu się z działem obsługi klienta myQNAPcloud Object.
Rejestrowanie zasobników
myQNAPcloud Object obsługuje rejestrowanie zasobników, które tworzy tekstowy plik dziennika wszystkich dostępów do zasobnika. Format pliku dziennika jest identyczny z formatem pliku dziennika AWS S3.
Rejestrowanie zasobników w myQNAPcloud Object nie wymaga żadnych ustawień uprawnień ACL do przechowywania dzienników w docelowym zasobniku. Chociaż można podać ustawienia uprawnień w żądaniu rejestrowania lub w ACL, nie są one wymagane do działania rejestrowania w myQNAPcloud Object. Jednak zasobnik będący celem dla plików dziennika musi znajdować się na tym samym koncie co rejestrowany zasobnik.
Obsługa współdzielenia zasobów między źródłami (CORS) dla zasobników
W celu zapewnienia zgodności z dostępem przeglądarki do myQNAPcloud Object jako serwera WWW, serwer myQNAPcloud Object będzie zwracał nagłówki CORS, gdy w żądaniu HTTP podany zostanie nagłówek „Origin". Ponadto serwer obsługuje metodę HTTP OPTIONS zarówno dla zasobników, jak i obiektów, zwracając nagłówki CORS potrzebne do testu wstępnego przeglądarki przed uzyskaniem dostępu do myQNAPcloud Object.
W odróżnieniu od AWS, myQNAPcloud Object zwraca ustawienia umożliwiające przeglądarce pełny dostęp do myQNAPcloud Object. W związku z tym myQNAPcloud Object nie obsługuje funkcji AWS umożliwiających wykonanie operacji PUT i GET na zasobniku z parametrem „cors" w adresie URL. Należy pamiętać, że zezwolenie przeglądarce na pełny dostęp do danych nie wpływa na bezpieczeństwo dostępu do żadnych obiektów, a wszystkie polityki dostępu będą nadal egzekwowane.
Poniżej przedstawiono nagłówki HTTP zwracane domyślnie, gdy w żądaniu HTTP podany zostanie nagłówek „Origin":
Kod:
Access-Control-Allow-Headers: *
Access-Control-Allow-Methods: GET, HEAD, POST, PUT, DELETE, MOVE, OPTIONS
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: *
Access-Control-Max-Age: 86400
Polityka cyklu życia
Funkcja cyklu życia ustanawia politykę cyklu życia z regułami definiującymi działania, które mają być podejmowane przez myQNAPcloud Object w trakcie cyklu życia obiektu. Funkcja ta eliminuje konieczność ręcznego usuwania obiektu po upływie okresu przechowywania.
Konfigurowanie ustawień cyklu życia
Ustawienia cyklu życia dla zasobnika są konfigurowane za pomocą polecenia „put-bucket-lifecycle-configuration". Na przykład:
Kod:
$ aws s3api put-bucket-lifecycle-configuration --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.io --lifecycle-configuration file://lifecycle.json
{
"Rules": [
{
"Expiration": {
"Days": 1
},
"ID": "lifecycle_rule_1",
"Filter": {
"And": {
"ObjectSizeGreaterThan": 1,
"ObjectSizeLessThan": 21474836480
}
},
"Status": "Enabled"
},
{
"Expiration": {
"Days": 1
},
"ID": "object_lifecycle_rule_bucket_6807766",
"Filter": {
"Prefix": "1"
},
"Status": "Enabled"
}
]
}
Oto kolejny przykład:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/1-1-1-1?lifecycle
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>lifecycle_rule_1</ID>
<Filter>
<And>
<ObjectSizeGreaterThan>1</ObjectSizeGreaterThan>
<ObjectSizeLessThan>21474836480</ObjectSizeLessThan>
</And>
</Filter>
<Status>Enabled</Status>
</Rule>
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>object_lifecycle_rule_bucket_6807766</ID>
<Filter>
<Prefix>1</Prefix>
</Filter>
<Status>Enabled</Status>
</Rule>
</LifecycleConfiguration>
To wywołanie nie zwraca treści odpowiedzi.
Pobieranie ustawień cyklu życia
Ustawienia cyklu życia dla zasobnika można pobrać za pomocą polecenia „get-bucket-lifecycle-configuration". Na przykład:
Kod:
$ aws s3api get-bucket-lifecycle-configuration --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.io
{
"Rules": [
{
"Expiration": {
"Days": 1
},
"ID": "lifecycle_rule_1",
"Filter": {
"And": {
"ObjectSizeGreaterThan": 1,
"ObjectSizeLessThan": 21474836480
}
},
"Status": "Enabled"
},
{
"Expiration": {
"Days": 1
},
"ID": "object_lifecycle_rule_bucket_6807766",
"Filter": {
"Prefix": "1"
},
"Status": "Enabled"
}
]
}
Oto kolejny przykład:
Kod:
GET https://s3.us-east-1.myqnapcloud.io/1-1-1-1?lifecycle
<?xml version="1.0" encoding="UTF-8"?>
<LifecycleConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>lifecycle_rule_1</ID>
<Filter>
<And>
<ObjectSizeGreaterThan>1</ObjectSizeGreaterThan>
<ObjectSizeLessThan>21474836480</ObjectSizeLessThan>
</And>
</Filter>
<Status>Enabled</Status>
</Rule>
<Rule>
<Expiration>
<Days>1</Days>
</Expiration>
<ID>object_lifecycle_rule_bucket_6807766</ID>
<Filter>
<Prefix>1</Prefix>
</Filter>
<Status>Enabled</Status>
</Rule>
</LifecycleConfiguration>
Usuwanie ustawień cyklu życia
Ustawienia cyklu życia dla zasobnika można usunąć za pomocą polecenia „delete-bucket-lifecycle". Na przykład:
Kod:
$ aws s3api delete-bucket-lifecycle --bucket 1-1-1-1 --endpoint-url https://s3.us-east-1.myqnapcloud.io
To wywołanie nie zwraca treści odpowiedzi.
Blokada obiektów
myQNAPcloud Object obsługuje blokadę obiektów, która uniemożliwia usunięcie lub nadpisanie wersji obiektów przez określony czas lub bezterminowo.
| Tag | Opis |
|---|---|
| ObjectLockConfiguration | Jest to obowiązkowy tag głównego poziomu dla konfiguracji blokady obiektów. |
| ObjectLockEnabled | Ten tag musi być skonfigurowany jako Enabled. |
| Rule | Określa regułę blokady obiektów dla zasobnika. Wymaga zarówno trybu, jak i okresu. Okres może być podany w dniach (Days) lub latach (Years), ale należy wybrać jedną opcję. Nie można jednocześnie określić Days i Years. Tryb powinien być COMPLIANCE lub GOVERNANCE. |
Ustawienia blokady obiektów dla zasobnika są określane za pomocą parametru zapytania „?object-lock" wraz z ustawieniami blokady obiektów jako treścią XML w żądaniu. Na przykład:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1
<ObjectLockConfiguration>
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>10</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Ustawienia blokady obiektów dla bucketu można pobrać, wysyłając żądanie GET dla bucketu z parametrem zapytania „?object-lock". Na przykład:
Kod:
GET https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1
Treść odpowiedzi:
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<ObjectLockConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode>COMPLIANCE</Mode>
<Days>10</Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Ustawienia blokady obiektów dla poszczególnych obiektów opisano w sekcji Operacje na obiektach.
Ustawienia blokady obiektów dla bucketu można wyczyścić przy użyciu parametru zapytania „?object-lock". Na przykład:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/?object-lock HTTP/1.1
Treść odpowiedzi:
Kod:
<ObjectLockConfiguration>
<ObjectLockEnabled>Enabled</ObjectLockEnabled>
<Rule>
<DefaultRetention>
<Mode></Mode>
<Days></Days>
</DefaultRetention>
</Rule>
</ObjectLockConfiguration>
Zgodność obiektów myQNAPcloud Object
myQNAPcloud Object obsługuje politykę zgodności, która zapobiega usuwaniu obiektów i dostarcza dodatkowych informacji potwierdzających, że oryginalne dane nie zostały zmodyfikowane od momentu zapisu. Funkcja zgodności może być wymagana ze względu na określone wymogi regulacyjne, a ponadto jest przydatna w celu zapobiegania przypadkowemu usunięciu danych.
Zgodność różni się od ustawień blokady obiektów dla bucketu.
Politykę zgodności można ustawić na dowolnym buckecie, obejmując nią wszystkie obiekty przechowywane w tym buckecie. Politykę zgodności bucketu określa się za pomocą następujących tagów XML.
| Tag | Opis |
|---|---|
| Status | Wartość „enabled" lub „disabled" służąca odpowiednio do włączania lub wyłączania zgodności. Włączenie jest natychmiast stosowane do wszystkich obiektów w buckecie. |
| LockTime | Czas, od którego ustawienia zgodności są „zablokowane" – ustawień nie można zmniejszyć za pomocą żadnego wywołania API. Po zablokowaniu ustawień nie można ich odblokować bez interwencji Działu Obsługi Klienta QNAP. Parametr czasu blokady umożliwia obsługę dwóch przypadków użycia:
|
| RetentionDays | Liczba całkowita określająca minimalną liczbę dni, przez które obiekty są zawsze przechowywane po dacie ich utworzenia lub zwolnieniu z warunkowego wstrzymania. Datę przechowywania można przedłużyć dla dowolnego pojedynczego obiektu, ale nie można jej skrócić. Ten parametr jest zawsze wymagany. |
| ConditionalHold | Wartość logiczna („true" lub „false") wskazująca, czy nowo utworzone obiekty są objęte warunkowym wstrzymaniem, co oznacza, że nie można ich usunąć, dopóki warunkowe wstrzymanie nie zostanie jawnie wyłączone. Wartość domyślna to false, jeśli ten parametr nie zostanie podany. Należy pamiętać, że to ustawienie może być zmieniane nawet po zablokowaniu ustawień. |
Ustawienia zgodności dla bucketu są określane przy użyciu parametru zapytania „?compliance" wraz z ustawieniami zgodności jako treścią XML w żądaniu. Na przykład:
Kod:
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket?complianceHTTP./1.1
<BucketComplianceConfiguration>
<Status>enabled</Status>
<LockTime>off</LockTime>
<RetentionDays>365</RetentionDays>
<DeleteAfterRetention>true</DeleteAfterRetention>
</BucketComplianceConfiguration>
Po włączeniu zgodności dla bucketu polityka jest natychmiast stosowana do wszystkich obiektów w tym buckecie. Próba usunięcia obiektu przed upływem okresu przechowywania spowoduje zwrócenie błędu.
Ustawienia zgodności dla bucketu można pobrać, wysyłając żądanie GET dla bucketu z parametrem zapytania „?compliance". Na przykład:
Kod:
GET http://s3.us-east-1.myqnapcloud.io/my-buck?complianceHTTP/1.1
Treść odpowiedzi:
Kod:
<BucketComplianceConfiguration xml ns="http://s3.amazonaws.com/doc/2006-03-01/">
<Status>enabled</Status>
<LockTime>2016-11-07T15:08:05Z</LockTime>
<IsLocked>false</IsLocked>
<RetentionDays>0</RetentionDays>
<ConditionalHold>false</ConditionalHold>
<DeleteAfterRetention>false</DeleteAfterRetention>
</BucketComplianceConfiguration>
Ustawienia zgodności dla poszczególnych obiektów opisano w sekcji Operacje na obiektach.
Operacje na bucketach nieobsługiwane w myQNAPcloud Object
| Operacja | Opis |
|---|---|
| Tagowanie bucketów | Tagowanie bucketów jest obecnie niedostępne w myQNAPcloud Object. |
| Witryna internetowa bucketu | Konfiguracja witryny internetowej jest niedostępna w myQNAPcloud Object. Biorąc pod uwagę charakter myQNAPcloud Object jako długoterminowego magazynu obiektów, nie przewiduje się obsługi operacji dotyczących witryn internetowych dla bucketów. Nagłówek „x-amz-website-redirect-location" jest ignorowany we wszystkich żądaniach dotyczących obiektów. |
| Akceleracja bucketu | myQNAPcloud Object nie implementuje podzasobu akceleracji bucketu AWS S3. |
| Płatność za żądania bucketu | myQNAPcloud Object nie obsługuje podzasobu „requestPayment" dla bucketów. |
| Konfiguracja metryk | myQNAPcloud Object nie obsługuje operacji umożliwiającej otrzymywanie jednominutowych metryk CloudWatch, ustawianie alarmów CloudWatch oraz dostęp do pulpitów CloudWatch w celu wyświetlania operacji i wydajności magazynu Amazon S3 w czasie zbliżonym do rzeczywistego. |
| Blokowanie publicznego dostępu S3 | myQNAPcloud Object nie obsługuje operacji centralnego blokowania istniejącego publicznego dostępu (niezależnie od tego, czy jest on możliwy za pośrednictwem listy ACL czy polityki) ani zapewniania, że nowo tworzone elementy nie otrzymują przypadkowo publicznego dostępu. |
| S3 Select | myQNAPcloud Object nie obsługuje interfejsu API S3 Select. |
Operacje na obiektach obejmują zmienianie nazwy, łączenie, dołączanie i usuwanie obiektów, a także szyfrowanie, klasę pamięci masowej, blokadę obiektów i zgodność.
myQNAPcloud Object obsługuje funkcję przenoszenia obiektu – w efekcie zmieniania jego nazwy przez zmianę klucza. Eliminuje to dwuetapowy proces polegający na najpierw skopiowaniu obiektu, a następnie usunięciu oryginału. Wywołujący musi posiadać uprawnienie polityki s3
utObject dla bucketu, aby móc zmieniać nazwy obiektów.
Aby zmienić nazwy obiektów, należy użyć metody HTTP MOVE wraz z następującymi parametrami w nagłówkach żądania wpływającymi na operację przenoszenia.
Wywołanie zwróci wyniki jako treść XML odpowiedzi. Wyniki zawierają następujące informacje dla każdego zmienionego obiektu:
Opcja quiet spowoduje, że wyniki będą zawierać tylko klucze, w przypadku których wystąpił błąd.
Poniżej znajduje się przykład, który zmienia nazwy wszystkich obiektów zaczynających się od prefiksu „TestMove-Dir2/" tak, aby miały nowy prefiks „TestMove-Dir2-Renamed/".
Treść odpowiedzi:
myQNAPcloud Object oferuje funkcję tworzenia nowego obiektu złożonego z innych obiektów. Obiekt złożony nie powstaje przez kopiowanie oryginalnych danych, lecz przez powiązanie obiektu złożonego z obiektami danych. Różni się to od AWS S3, który nie oferuje możliwości tworzenia obiektów złożonych. Operacja myQNAPcloud Object jest znacznie szybsza i nie wymaga tworzenia wielu kopii oryginalnych danych. Oryginalne obiekty składowe mogą zostać usunięte w dowolnym momencie, a system zachowa oryginalne dane tak długo, jak istnieją jakiekolwiek powiązania z tymi danymi.
Tworzenie obiektów złożonych jest alternatywą dla funkcji przesyłania wieloczęściowego (multi-part upload) przy tworzeniu obiektów o rozmiarze większym niż 5 GB. Wywołujący musi posiadać uprawnienie zasady s3
utObject do bucketu, aby móc tworzyć obiekty złożone. Obiekty złożone mogą być tworzone zarówno z innych obiektów złożonych, jak i z oryginalnych obiektów danych. Jednak łączna liczba oryginalnych obiektów danych nie może przekroczyć 32 w ramach jednego obiektu złożonego. Obiekty złożone mogą być powiązane wyłącznie z innymi obiektami w tym samym buckecie.
Operacja tworzenia obiektu złożonego jest wykonywana przy użyciu metody HTTP PUT z parametrem ciągu zapytania „?compose", który wskazuje, że obiekt jest złożony z obiektów podanych w treści XML. Treść XML zawiera listę kluczy obiektów oraz opcjonalnie identyfikatory wersji tworzących nowy obiekt. Jeśli identyfikator wersji nie zostanie podany, zostanie użyta najnowsza wersja obiektu. Nowy obiekt będzie wyglądać jak jeden obiekt będący złączeniem wszystkich powiązanych obiektów danych. Nowy obiekt złożony nie ma wartości ETag (tj. MD5) będącej sumą MD5 złączonych obiektów, lecz wynik skrótu wszystkich wartości MD5 obiektów danych (podobnie jak obliczenie wykonywane po zakończeniu przesyłania obiektów wieloczęściowych). Obiekty złożone nie mogą mieć kluczy szyfrowania dostarczanych przez użytkownika. Jednak wszystkie dane są przechowywane w postaci zaszyfrowanej.
Opłata jest naliczana wyłącznie za metadane używane w obiektach złożonych. Oryginalne dane używane w powiązanych obiektach są rozliczane według standardowej stawki do momentu usunięcia wszystkich obiektów złożonych powiązanych z oryginalnym obiektem danych.
Poniżej znajduje się przykład tworzący nowy obiekt „TestComp" z trzech obiektów: „TestCompose-Data-1", „TestCompose-Data-2" oraz „TestCompose-Data-3".
AWS S3 nie oferuje możliwości dołączania danych do obiektów.
Dołączanie danych do istniejącego obiektu jest odmianą tworzenia obiektu złożonego (zob. Tworzenie obiektów złożonych). Wywołanie przesyła dane zawarte w treści żądania do obiektu tymczasowego, a następnie tworzy nowy obiekt złożony składający się z danych oryginalnego obiektu z dołączonymi nowo przesłanymi danymi. Jeśli bucket obsługuje wersjonowanie, tworzona jest nowa wersja obiektu złożonego z zachowaniem oryginalnych danych. Gdy wersjonowanie jest wyłączone, nowo utworzony obiekt złożony zastępuje oryginalny obiekt. Wywołujący musi posiadać uprawnienie zasady s3
utObject do bucketu, aby móc dołączać dane do obiektów. Ponadto w przypadku bucketu bez wersjonowania może być wymagane uprawnienie zasady s3
eleteObject w celu zastąpienia oryginalnego obiektu.
Podobnie jak w przypadku obiektów złożonych, do dowolnego obiektu można dołączyć dane maksymalnie 1023 razy, ponieważ każda operacja dołączenia tworzy powiązanie z przesłanymi danymi. Należy zachować ostrożność i unikać wielokrotnego dołączania małych ilości danych do obiektu, ponieważ każde przesłanie danych dołączanych tworzy nowy obiekt podlegający minimalnym opłatom za rozmiar i może obniżyć wydajność ze względu na odczyt małych ilości danych. Operacja dołączania jest wykonywana przy użyciu metody HTTP PUT z parametrem ciągu zapytania „?append". Dane do dołączenia są przesyłane w treści żądania.
Poniżej znajduje się przykład, który dołącza ciąg znaków „<appended data>" do istniejącego obiektu „TestAppend-Object".
Standardowo, aby zmienić nazwy obiektów przy użyciu protokołu AWS S3, obiekt jest przesyłany z jedną wartością klucza. Następnie wykonywana jest operacja PUT z nową wartością klucza skopiowaną z oryginalnej wartości klucza, po czym obiekt z oryginalną wartością klucza jest usuwany.
myQNAPcloud Object automatycznie optymalizuje tę sekwencję, powiązując nowy obiekt z wartością klucza z oryginalnymi danymi wartości klucza kopiowania. Pozwala to uniknąć tworzenia kolejnej kopii danych, co skutkowałoby wyższymi opłatami za przechowywanie. Ponieważ myQNAPcloud Object używa powiązań z oryginalnymi danymi, obiekt o dowolnym rozmiarze do limitu 5 TB może zostać skopiowany bez konieczności korzystania z przesyłania wieloczęściowego.
Jeśli opcja MFADelete jest włączona w ustawieniach wersjonowania bucketu, nagłówek „x-amz-mfa" nie jest wymagany, jeśli dane uwierzytelniające dostęp zostały podpisane przy użyciu MFA (zob. również MFA (Multi-Factor Authentication) Delete).
Jeśli rejestrowanie zdarzeń bucketu jest włączone, usunięcie wielu obiektów spowoduje utworzenie oddzielnego wpisu dziennika dla każdego usuniętego obiektu.
Każdy nagłówek żądania GET object zaczynający się od „response-" zostanie zwrócony jako nagłówek odpowiedzi (bez ciągu „response-").
myQNAPcloud Object szyfruje wszystkie dane przechowywane w spoczynku niezależnie od żądanego szyfrowania. System będzie używał kluczy szyfrowania dostarczonych przez wywołującego, jeśli zostaną podane, lub wygeneruje losowy klucz szyfrowania dla każdego obiektu, jeśli klucz klienta nie zostanie podany. Jeśli klient dostarczy klucz szyfrowania, podobnie jak w przypadku AWS S3, myQNAPcloud Object nie będzie przechowywać kopii klucza klienta w metadanych, a wywołujący musi podać klucz szyfrowania w celu odczytania danych. Jeśli klucz szyfrowania jest dostarczany przez myQNAPcloud Object, wywołujący nie musi podejmować żadnych działań.
Wywołujący może dostarczyć klucz szyfrowania przy użyciu nagłówków x-amz-server-side-encryption-customer-algorithm, x-amz-server-side-encryption-customer-key oraz x-amz-server-side-encryption-customer-key-MD5. Parametry te działają identycznie jak w AWS S3.
myQNAPcloud Object nie obsługuje usługi zarządzania kluczami. W związku z tym nagłówek „x-amz-server-side-encryption" nie jest obsługiwany, podobnie jak cała funkcjonalność „aws:kms". myQNAPcloud Object przechowuje skrót MD5 dla danych, który zawsze odpowiada przesłanym danym, niezależnie od szyfrowania po stronie serwera.
myQNAPcloud Object oferuje tylko jedną klasę przechowywania, która jest najbardziej zbliżona do standardowej klasy przechowywania AWS S3. Gdy klasa przechowywania jest zwracana w ramach dowolnej operacji, myQNAPcloud Object zwróci standardową klasę przechowywania AWS S3.
Zmienianie nazw obiektów
myQNAPcloud Object obsługuje funkcję przenoszenia obiektu – w efekcie zmieniania jego nazwy przez zmianę klucza. Eliminuje to dwuetapowy proces polegający na najpierw skopiowaniu obiektu, a następnie usunięciu oryginału. Wywołujący musi posiadać uprawnienie polityki s3
Aby zmienić nazwy obiektów, należy użyć metody HTTP MOVE wraz z następującymi parametrami w nagłówkach żądania wpływającymi na operację przenoszenia.
| Overwrite | Wartość logiczna, która gdy ma wartość „true", umożliwia nadpisanie obiektów docelowych o tym samym kluczu. W przeciwnym razie generowany jest błąd i oryginalny klucz nie jest zmieniany. |
| X-Wasabi-Quiet | Wartość logiczna, która gdy ma wartość „true", powoduje, że treść odpowiedzi XML zawiera tylko klucze, w przypadku których wystąpiły błędy. W przeciwnym razie w odpowiedzi podawane są wszystkie zmienione obiekty. Wartość domyślna to „false". |
| X-Wasabi-Prefix | Wartość logiczna, która gdy ma wartość „true", oznacza, że wartości podane dla źródła w adresie URL oraz miejsca docelowego są prefiksami – pasują do lewej części kluczy. Koncepcyjnie prefiks można traktować jak folder obiektów. W przeciwnym razie zmieniane są nazwy tylko obiektów (we wszystkich wersjach) dokładnie pasujących do klucza. Wartość domyślna to „false". |
Wywołanie zwróci wyniki jako treść XML odpowiedzi. Wyniki zawierają następujące informacje dla każdego zmienionego obiektu:
- oryginalny klucz źródłowy,
- nowy klucz docelowy po zmianie nazwy,
- identyfikator wersji obiektu oraz
- ewentualny błąd operacji zmiany nazwy.
Opcja quiet spowoduje, że wyniki będą zawierać tylko klucze, w przypadku których wystąpił błąd.
Poniżej znajduje się przykład, który zmienia nazwy wszystkich obiektów zaczynających się od prefiksu „TestMove-Dir2/" tak, aby miały nowy prefiks „TestMove-Dir2-Renamed/".
Kod:
MOVE http://s3.us-east-1.myqnapcloud.io/my_bucket/TestMove-Dir2/HTTP/1.1 Destination:TestMove-Dir2-Renamed/X-Wasabi-Prefix:true
Treść odpowiedzi:
Kod:
<MoveObjectResult> <SourcePrefix>TestMove-Dir2/SourcePrefix> <DestinationPrefix>TestMove-Dir2-Renamed/DestinationPrefix> <MoveObject> <SourceKey>TestMove-Dir2/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/Obj1SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/Obj1DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir1/Obj2SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir1/Obj2DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/Obj1SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/Obj1DestinationKey> MoveObject> <MoveObject> <SourceKey>TestMove-Dir2/Dir2/Obj2SourceKey> <DestinationKey>TestMove-Dir2-Renamed/Dir2/Obj2DestinationKey> MoveObject> <MoveCount>7MoveCount> MoveObjectResult>
Tworzenie obiektów złożonych
myQNAPcloud Object oferuje funkcję tworzenia nowego obiektu złożonego z innych obiektów. Obiekt złożony nie powstaje przez kopiowanie oryginalnych danych, lecz przez powiązanie obiektu złożonego z obiektami danych. Różni się to od AWS S3, który nie oferuje możliwości tworzenia obiektów złożonych. Operacja myQNAPcloud Object jest znacznie szybsza i nie wymaga tworzenia wielu kopii oryginalnych danych. Oryginalne obiekty składowe mogą zostać usunięte w dowolnym momencie, a system zachowa oryginalne dane tak długo, jak istnieją jakiekolwiek powiązania z tymi danymi.
Tworzenie obiektów złożonych jest alternatywą dla funkcji przesyłania wieloczęściowego (multi-part upload) przy tworzeniu obiektów o rozmiarze większym niż 5 GB. Wywołujący musi posiadać uprawnienie zasady s3
Operacja tworzenia obiektu złożonego jest wykonywana przy użyciu metody HTTP PUT z parametrem ciągu zapytania „?compose", który wskazuje, że obiekt jest złożony z obiektów podanych w treści XML. Treść XML zawiera listę kluczy obiektów oraz opcjonalnie identyfikatory wersji tworzących nowy obiekt. Jeśli identyfikator wersji nie zostanie podany, zostanie użyta najnowsza wersja obiektu. Nowy obiekt będzie wyglądać jak jeden obiekt będący złączeniem wszystkich powiązanych obiektów danych. Nowy obiekt złożony nie ma wartości ETag (tj. MD5) będącej sumą MD5 złączonych obiektów, lecz wynik skrótu wszystkich wartości MD5 obiektów danych (podobnie jak obliczenie wykonywane po zakończeniu przesyłania obiektów wieloczęściowych). Obiekty złożone nie mogą mieć kluczy szyfrowania dostarczanych przez użytkownika. Jednak wszystkie dane są przechowywane w postaci zaszyfrowanej.
Opłata jest naliczana wyłącznie za metadane używane w obiektach złożonych. Oryginalne dane używane w powiązanych obiektach są rozliczane według standardowej stawki do momentu usunięcia wszystkich obiektów złożonych powiązanych z oryginalnym obiektem danych.
Poniżej znajduje się przykład tworzący nowy obiekt „TestComp" z trzech obiektów: „TestCompose-Data-1", „TestCompose-Data-2" oraz „TestCompose-Data-3".
Kod:
PUT http://s3.wasabisys.com/my_bucket/TestCompose-Object-1?composeHTTP/1.1Content-Type:text/xml
<ComposeRequest>
<Component>
<Key>TestCompose-Data-1</Key>
</Component>
<Component>
<Key>TestCompose-Data-2</Key>
</Component>
<Component>
<Key>TestCompose-Data-3</Key>
</Component>
</ComposeRequest>
Dołączanie danych do obiektów
AWS S3 nie oferuje możliwości dołączania danych do obiektów.
Dołączanie danych do istniejącego obiektu jest odmianą tworzenia obiektu złożonego (zob. Tworzenie obiektów złożonych). Wywołanie przesyła dane zawarte w treści żądania do obiektu tymczasowego, a następnie tworzy nowy obiekt złożony składający się z danych oryginalnego obiektu z dołączonymi nowo przesłanymi danymi. Jeśli bucket obsługuje wersjonowanie, tworzona jest nowa wersja obiektu złożonego z zachowaniem oryginalnych danych. Gdy wersjonowanie jest wyłączone, nowo utworzony obiekt złożony zastępuje oryginalny obiekt. Wywołujący musi posiadać uprawnienie zasady s3
Podobnie jak w przypadku obiektów złożonych, do dowolnego obiektu można dołączyć dane maksymalnie 1023 razy, ponieważ każda operacja dołączenia tworzy powiązanie z przesłanymi danymi. Należy zachować ostrożność i unikać wielokrotnego dołączania małych ilości danych do obiektu, ponieważ każde przesłanie danych dołączanych tworzy nowy obiekt podlegający minimalnym opłatom za rozmiar i może obniżyć wydajność ze względu na odczyt małych ilości danych. Operacja dołączania jest wykonywana przy użyciu metody HTTP PUT z parametrem ciągu zapytania „?append". Dane do dołączenia są przesyłane w treści żądania.
Poniżej znajduje się przykład, który dołącza ciąg znaków „<appended data>" do istniejącego obiektu „TestAppend-Object".
Kod:
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket/TestAppend-Object?appendHTTP/1.1Content-Length:15
Operacja PUT Object Copy z użyciem powiązania
Standardowo, aby zmienić nazwy obiektów przy użyciu protokołu AWS S3, obiekt jest przesyłany z jedną wartością klucza. Następnie wykonywana jest operacja PUT z nową wartością klucza skopiowaną z oryginalnej wartości klucza, po czym obiekt z oryginalną wartością klucza jest usuwany.
myQNAPcloud Object automatycznie optymalizuje tę sekwencję, powiązując nowy obiekt z wartością klucza z oryginalnymi danymi wartości klucza kopiowania. Pozwala to uniknąć tworzenia kolejnej kopii danych, co skutkowałoby wyższymi opłatami za przechowywanie. Ponieważ myQNAPcloud Object używa powiązań z oryginalnymi danymi, obiekt o dowolnym rozmiarze do limitu 5 TB może zostać skopiowany bez konieczności korzystania z przesyłania wieloczęściowego.
Usuwanie obiektów — MFADelete
Jeśli opcja MFADelete jest włączona w ustawieniach wersjonowania bucketu, nagłówek „x-amz-mfa" nie jest wymagany, jeśli dane uwierzytelniające dostęp zostały podpisane przy użyciu MFA (zob. również MFA (Multi-Factor Authentication) Delete).
Jeśli rejestrowanie zdarzeń bucketu jest włączone, usunięcie wielu obiektów spowoduje utworzenie oddzielnego wpisu dziennika dla każdego usuniętego obiektu.
Nagłówki odpowiedzi dla operacji GET Object
Każdy nagłówek żądania GET object zaczynający się od „response-" zostanie zwrócony jako nagłówek odpowiedzi (bez ciągu „response-").
Szyfrowanie obiektów po stronie serwera
myQNAPcloud Object szyfruje wszystkie dane przechowywane w spoczynku niezależnie od żądanego szyfrowania. System będzie używał kluczy szyfrowania dostarczonych przez wywołującego, jeśli zostaną podane, lub wygeneruje losowy klucz szyfrowania dla każdego obiektu, jeśli klucz klienta nie zostanie podany. Jeśli klient dostarczy klucz szyfrowania, podobnie jak w przypadku AWS S3, myQNAPcloud Object nie będzie przechowywać kopii klucza klienta w metadanych, a wywołujący musi podać klucz szyfrowania w celu odczytania danych. Jeśli klucz szyfrowania jest dostarczany przez myQNAPcloud Object, wywołujący nie musi podejmować żadnych działań.
Wywołujący może dostarczyć klucz szyfrowania przy użyciu nagłówków x-amz-server-side-encryption-customer-algorithm, x-amz-server-side-encryption-customer-key oraz x-amz-server-side-encryption-customer-key-MD5. Parametry te działają identycznie jak w AWS S3.
myQNAPcloud Object nie obsługuje usługi zarządzania kluczami. W związku z tym nagłówek „x-amz-server-side-encryption" nie jest obsługiwany, podobnie jak cała funkcjonalność „aws:kms". myQNAPcloud Object przechowuje skrót MD5 dla danych, który zawsze odpowiada przesłanym danym, niezależnie od szyfrowania po stronie serwera.
Klasa przechowywania obiektów
myQNAPcloud Object oferuje tylko jedną klasę przechowywania, która jest najbardziej zbliżona do standardowej klasy przechowywania AWS S3. Gdy klasa przechowywania jest zwracana w ramach dowolnej operacji, myQNAPcloud Object zwróci standardową klasę przechowywania AWS S3.
Operacje na obiektach nieobsługiwane w myQNAPcloud Object
| Przywracanie obiektów (Object RESTORE) | myQNAPcloud Object nie obsługuje wielu klas przechowywania ani żądania POST object RESTORE służącego do przywracania obiektów z innej klasy przechowywania. |
| Wybieranie zawartości obiektu (Select Object Content) | myQNAPcloud Object nie obsługuje operacji filtrowania zawartości obiektu Amazon S3 na podstawie prostej instrukcji strukturalnego języka zapytań (SQL). |
| Operacje wsadowe S3 (S3 Batch Operations) | myQNAPcloud Object nie obsługuje operacji wsadowych S3 służących do zarządzania obiektami. |
Ustawienia zgodności dowolnego obiektu w zasobniku z włączoną zgodnością można również zmieniać w granicach określonych przez zasady zgodności zasobnika. Ustawienia zgodności obiektu należy podać za pomocą następujących tagów XML.
Poniżej przedstawiono przykład ustawienia zgodności dla obiektu:
Ustawienia zgodności dla określonego obiektu można również pobrać przy użyciu ciągu zapytania „?compliance". Oprócz ustawień zgodności obiektu opisanych powyżej, zapytanie zwraca obliczony skrót SHA256 obiektu, który można wykorzystać do sprawdzenia, czy obiekt nie został zmodyfikowany. Należy pamiętać, że wartość SHA256 jest dostępna wyłącznie dla obiektów przesłanych jako pojedynczy obiekt i nie jest dostępna dla obiektów wieloczęściowych ani złożonych.
Poniżej przedstawiono przykład pobierania ustawień zgodności dla obiektu:
Treść odpowiedzi:
Ustawienia zgodności obiektu pojawiają się również na listach zasobników, gdy zasobnik ma włączoną zgodność.
| LegalHold | Wartość logiczna „true" lub „false" określająca status blokady prawnej. Gdy obiekt ma status blokady prawnej ustawiony na true, nie można go usunąć niezależnie od okresu przechowywania. |
| RetentionTime | Czas w formacie ISO określający nowy czas przechowywania obiektu, przed upływem którego obiekt nie może zostać usunięty. Należy pamiętać, że nowy czas przechowywania musi być późniejszy niż okres przechowywania określony w zasadach zasobnika — w przeciwnym razie zostanie zwrócony błąd. |
Poniżej przedstawiono przykład ustawienia zgodności dla obiektu:
Kod:
PUT http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object?complianceHTTP/1.1
<ObjectComplianceConfiguration>
<ConditionalHold>false</ConditionalHold>
<RetentionTime>2018-03-13T10:45:00Z</RetentionTime>
</ObjectComplianceConfiguration>
Ustawienia zgodności dla określonego obiektu można również pobrać przy użyciu ciągu zapytania „?compliance". Oprócz ustawień zgodności obiektu opisanych powyżej, zapytanie zwraca obliczony skrót SHA256 obiektu, który można wykorzystać do sprawdzenia, czy obiekt nie został zmodyfikowany. Należy pamiętać, że wartość SHA256 jest dostępna wyłącznie dla obiektów przesłanych jako pojedynczy obiekt i nie jest dostępna dla obiektów wieloczęściowych ani złożonych.
Poniżej przedstawiono przykład pobierania ustawień zgodności dla obiektu:
Kod:
GET http://s3.us-east-1.myqnapcloud.io/my-bucket/my-object?complianceHTTP/1.1
Treść odpowiedzi:
Kod:
<ObjectComplianceConfiguration xml ns="http://s3.amazonaws.com/doc/2006-03-01/">
<RetentionTime>2016-10-31T15:08:05Z</RetentionTime>
<ConditionalHold>false</ConditionalHold>
<LegalHold>false</LegalHold>
<SHA256>14b4be3894e92166b508007b6c2e4fb6e88d3d0ad652c76475089a50ebe6e33b</SHA256>
</ObjectComplianceConfiguration>
Ustawienia zgodności obiektu pojawiają się również na listach zasobników, gdy zasobnik ma włączoną zgodność.
Ustawienia blokady obiektu można dodawać lub aktualizować przy użyciu tagów opisanych poniżej.
Poniżej przedstawiono przykład ustawiania konfiguracji blokady obiektu:
Poniżej przedstawiono przykład ustawiania blokady prawnej dla obiektu:
Poniżej przedstawiono przykład ustawiania trybu zarządzania (governance) dla obiektu:
Nagłówek „x-amz-bypass-governance-retention =true" musi być dołączany za każdym razem, gdy chcesz zastąpić ustawienia trybu zarządzania (governance) dla obiektu.
| RetainUntilDate | Określa czas przechowywania obiektu. Obiektu nie można usunąć przed upływem tego czasu. Należy pamiętać, że czas przechowywania musi przypadać w przyszłości. |
| LegalHold | Wartość powinna wynosić ON lub OFF (bez rozróżniania wielkości liter). |
Poniżej przedstawiono przykład ustawiania konfiguracji blokady obiektu:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/beta_vpn.png?retention&versionId= 001617181245457483475-4ylsTbqqvP
<Retention>
<Mode>compliance</Mode>
<RetainUntilDate>2021-04-06T09:00:45Z</RetainUntilDate>
</Retention>
Poniżej przedstawiono przykład ustawiania blokady prawnej dla obiektu:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/beta_vpn.png?legal-hold&versionId=001617181245457483475-4ylsTbqqvP
<LegalHold>
<Status>ON</Status>
</LegalHold>
Poniżej przedstawiono przykład ustawiania trybu zarządzania (governance) dla obiektu:
Kod:
PUT https://s3.us-east-1.myqnapcloud.io/qa.objectlock.002/public/ACL.PNG?retention
<Retention>
<Mode>governance</Mode>
<RetainUntilDate>2021-05-20T09:00:45Z</RetainUntilDate>
</Retention>
Nagłówek „x-amz-bypass-governance-retention =true" musi być dołączany za każdym razem, gdy chcesz zastąpić ustawienia trybu zarządzania (governance) dla obiektu.
Adresy URL usługi myQNAPcloud dla poszczególnych regionów przechowywania myQNAPcloud Object są następujące:
Konsola zarządzania myQNAPcloud Object jest dostępna za pośrednictwem portalu myQNAPcloud.
Jeśli szukasz właściwego adresu URL usługi do użycia z aplikacją pamięci masowej innej firmy, wybierz ten, który odpowiada lokalizacji Twojego zasobnika.
Podczas pracy z aplikacjami pamięci masowej innych firm należy pamiętać, że stosują one różne metody obsługi adresów URL usług regionów przechowywania. Metody te obejmują:
Ameryki
| Region | Adres URL usługi |
|---|---|
| US East 1 (Wirginia Północna) | s3 .us-east-1.myqnapcloud.io |
| US Central 1 (Teksas) | s3.us-central-1. myqnapcloud.io |
| US West 1 (Oregon) | s3.us-west-1. myqnapcloud.io |
| CA Central 1 (Toronto) | s3.ca-central-1. myqnapcloud.io |
EMEA
| EU Central 1 (Amsterdam) | s3.eu-central-1. myqnapcloud.io |
| EU Central 2 (Frankfurt) | s3.eu-central-2. myqnapcloud.io |
| EU West 1 (Londyn) | s3.eu-west-1. myqnapcloud.io |
| EU West 2 (Paryż) | s3.eu-west-2. myqnapcloud.io |
| EU West 3 (Londyn) | s3.eu-west-3. myqnapcloud.io |
| EU South 1 (Mediolan) | s3.eu-south-1. myqnapcloud.io |
APAC
| AP Northeast 1 (Tokio) | s3.ap-northeast-1. myqnapcloud.io |
| AP Northeast 2 (Osaka) | s3.ap-northeast-2. myqnapcloud.io |
| AP Southeast 1 (Singapur) | s3.ap-southeast-1. myqnapcloud.io |
| AP Southeast 2 (Sydney) | s3.ap-southeast-2. myqnapcloud.io |
Konsola zarządzania myQNAPcloud Object jest dostępna za pośrednictwem portalu myQNAPcloud.
Jeśli szukasz właściwego adresu URL usługi do użycia z aplikacją pamięci masowej innej firmy, wybierz ten, który odpowiada lokalizacji Twojego zasobnika.
Podczas pracy z aplikacjami pamięci masowej innych firm należy pamiętać, że stosują one różne metody obsługi adresów URL usług regionów przechowywania. Metody te obejmują:
- Aplikacje umożliwiające jawne wprowadzenie adresu URL usługi. Są one najbardziej elastyczne, ponieważ pozwalają łatwo konfigurować nowe adresy URL usług w miarę ich udostępniania.
- Aplikacje umożliwiające wybór wyłącznie z predefiniowanej listy regionów przechowywania. Są one najmniej elastyczne, ponieważ w przypadku wdrożenia nowego regionu przez dostawcę pamięci masowej konieczne jest oczekiwanie na aktualizację aplikacji w celu uzyskania dostępu do nowego regionu. Jeśli Twoja aplikacja pamięci masowej nie obsługuje wszystkich regionów przechowywania myQNAPcloud Object na predefiniowanych listach regionów, skontaktuj się z dostawcą aplikacji (nie z firmą QNAP) z prośbą o dodanie tej obsługi.
- Aplikacje umożliwiające wyłącznie wprowadzenie zestawu kluczy API, a następnie oferujące wszystkie zasobniki na Twoim koncie. Zapewniają elastyczność, ale wymagają automatycznych przekierowań na poziomie protokołu HTTP.
GET Object Tagging
myQNAPcloud Object obsługuje funkcję pobierania zestawu tagów obiektu, gdy obiekt:
- Nie ma żadnych tagów
- Ma tagi
Gdy obiekt nie ma żadnych tagów
Kod:
GET https://s3.myqnapcloud.io/my_bucket/Test-object1.txt?tagging
Treść odpowiedzi:
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<Tagging>
<TagSet></TagSet>
</Tagging>
Kod:
Status 200 OK
Gdy obiekt ma tagi
Kod:
GET https://s3.myqnapcloud.io/my_bucket/Test-object2.pdf?tagging
Treść odpowiedzi:
Kod:
<!--?xml version="1.0" encoding="UTF-8"?-->
<Tagging>
<TagSet>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>
PUT Object Tagging
myQNAPcloud Object obsługuje następujące funkcje:
- Dodawanie wartości tagu do istniejącego obiektu w buckecie
- Dołączanie wartości tagu do istniejącego obiektu w buckecie
Dodawanie wartości tagu do istniejącego obiektu w buckecie
Kod:
PUT https://s3.myqnapcloud.io/my_bucket/Test-object3.pdf?tagging
Content-Type: text/xml
Treść odpowiedzi:
Kod:
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>tag1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>
Dołączanie wartości tagu do istniejącego obiektu w buckecie
W tym przykładzie istniejący obiekt ma już wartość tagu „key5" – „value5". Można dołączyć nową parę tagów wraz z istniejącą parą.
Kod:
PUT https://s3.myqnapcloud.io/my_bucket/Test-object4.jpg?tagging
Content-Type: text/xml
Treść odpowiedzi:
Kod:
<Tagging xmlns="http://s3.myqnapcloud.io/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>key5</Key>
<Value>value5</Value>
</Tag>
<Tag>
<Key>key6</Key>
<Value>value6</Value>
</Tag>
</TagSet>
</Tagging>
Kod:
Status 200 OK
Aby dodać tagi do innej wersji za pomocą PUT, należy użyć parametru zapytania versionId.
DELETE Object Tagging
Usuwa cały zestaw tagów z określonego obiektu.
Kod:
DELETE https://s3.myqnapcloud.io/my_bucket/Test-object5.pdf?tagging
Treść odpowiedzi:
Kod:
<empty>
Kod:
Status 204 No Content
Aby usunąć tagi innej wersji, należy użyć parametru zapytania versionId.
Get Object Tagging
myQNAPcloud Object obsługuje funkcję pobierania zestawu tagów obiektu, gdy obiekt:
- Nie ma żadnych tagów
- Ma tagi
Gdy obiekt nie ma żadnych tagów
Kod:
GET
https://s3.myqnapcloud.io/my_bucket/Test-object1.txt?tagging
Treść odpowiedzi:
Kod:
<?xml version="1.0" encoding="UTF-8"?>
<Tagging>
<TagSet></TagSet>
</Tagging>
Kod:
Status 200 OK
Gdy obiekt ma tagi
Kod:
GET
https://s3.myqnapcloud.io/my_bucket/Test-object2.pdf?tagging
Treść odpowiedzi:
Kod:
<!--?xml version="1.0" encoding="UTF-8"?-->
<Tagging>
<TagSet>
<Tag>
<Key>key2</Key>
<Value>value2</Value>
</Tag>
<Tag>
<Key>key1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>
PUT Object Tagging
myQNAPcloud Object obsługuje następujące funkcje:
- Dodawanie wartości tagu do istniejącego obiektu w buckecie
- Dołączanie wartości tagu do istniejącego obiektu w buckecie
Dodawanie wartości tagu do istniejącego obiektu w buckecie
Kod:
PUT
https://s3.myqnapcloud.io/my_bucket/Test-object3.pdf?tagging
Content-Type: text/xml
Treść odpowiedzi:
Kod:
<Tagging xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>tag1</Key>
<Value>value1</Value>
</Tag>
</TagSet>
</Tagging>
Dołączanie wartości tagu do istniejącego obiektu w buckecie
W tym przykładzie istniejący obiekt ma już wartość tagu „key5" – „value5". Można dołączyć nową parę tagów wraz z istniejącą parą.
Kod:
PUT
https://s3.myqnapcloud.io/my_bucket/Test-object4.jpg?tagging
Content-Type: text/xml
Treść odpowiedzi:
Kod:
<Tagging xmlns="http://s3.myqnapcloud.io/doc/2006-03-01/">
<TagSet>
<Tag>
<Key>key5</Key>
<Value>value5</Value>
</Tag>
<Tag>
<Key>key6</Key>
<Value>value6</Value>
</Tag>
</TagSet>
</Tagging>
Kod:
Status 200 OK
Aby dodać tagi do innej wersji za pomocą PUT, należy użyć parametru zapytania versionId.
DELETE Object Tagging
Usuwa cały zestaw tagów z określonego obiektu.
Kod:
DELETE
https://s3.myqnapcloud.io/my_bucket/Test-object5.pdf?tagging
Treść odpowiedzi:
Kod:
<empty>
Kod:
Status 204 No Content
Aby usunąć tagi innej wersji, należy użyć parametru zapytania versionId.
Dzięki zgodności z AWS S3 oficjalna dokumentacja AWS dla S3 stanowi uzupełniające źródło wiedzy podczas pracy z myQNAPcloud Object. Szczegółowe informacje dotyczące wersji API 2006-03-01 można znaleźć w dokumencie Amazon Simple Storage Service API Reference:
Amazon Simple Storage Service API Reference
Amazon Simple Storage Service API Reference