Wiedza Przewodnik po interfejsie API S3 obiektów myQNAPcloud

Obiekt myQNAPcloud

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.

  • 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".

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łęduOpis obiektu myQNAPcloudKod stanu HTTP
NiedostępneTymczasowo niedostępne503
NieodwracalneDane nieodwracalne
NiezaimplementowaneNie zaimplementowano501
Nie znaleziono encji bazy danychNie ma takiej encji404
Znaleziono encję bazy danychEncja już istnieje409
Błąd rozłączeniaPołączenie zamknięte410
Błąd wewnętrzny serweraBłąd wewnętrzny: Wystąpił błąd wewnętrzny. Skontaktuj się z pomocą techniczną.500
Dostęp zabronionyOdmowa dostępu403
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 żądanieZniekształcony nagłówek autoryzacji400
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ętePołączenie zamknięte: Połączenie sieciowe zostało zamknięte.410
Nie można przetworzyć encjiDane nieodwracalne: Dane w żądaniu są nieodwracalne. Skontaktuj się z pomocą techniczną.422
KonfliktKonflikt usuwania409
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 znalezionoNie ma takiej encji404
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 zaimplementowanoNie zaimplementowano: Podany nagłówek sugeruje funkcjonalność, która nie jest zaimplementowana.501
Usługa niedostępnaTymczasowo niedostępne: Zasoby dla tej operacji są tymczasowo niedostępne. Spróbuj ponownie później.503
ZnalezionoKlucz już istnieje302
Metoda niedozwolonaMetoda 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​


OperacjaOpis
SOAPAWS 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ść.

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.

TagOpis
ObjectLockConfigurationJest to obowiązkowy tag głównego poziomu dla konfiguracji blokady obiektów.
ObjectLockEnabledTen tag musi być skonfigurowany jako Enabled.
RuleOkreś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.

TagOpis
StatusWartość „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.
LockTimeCzas, 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:
  1. Testowanie poprawnego działania oprogramowania przed zablokowaniem funkcji zgodności; lub
  2. Nigdy nie blokowanie, co oznacza, że dane można usunąć po wykonaniu dodatkowego kroku polegającego na wyłączeniu zgodności przez administratora.
Parametr czasu blokady może przyjmować następujące wartości:
  • Data w formacie ISO (na przykład 2016-11-07T15:08:05Z),
  • Ciąg „now" wymuszający natychmiastowe zablokowanie, lub
  • Ciąg „off" oznaczający brak blokady ustawień zgodności. Jest to wartość domyślna.
RetentionDaysLiczba 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.
ConditionalHoldWartość 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​


OperacjaOpis
Tagowanie bucketówTagowanie bucketów jest obecnie niedostępne w myQNAPcloud Object.
Witryna internetowa bucketuKonfiguracja 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 bucketumyQNAPcloud Object nie implementuje podzasobu akceleracji bucketu AWS S3.
Płatność za żądania bucketumyQNAPcloud Object nie obsługuje podzasobu „requestPayment" dla bucketów.
Konfiguracja metrykmyQNAPcloud 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 S3myQNAPcloud 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 SelectmyQNAPcloud 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ść.

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:putObject 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.

OverwriteWartość 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-QuietWartość 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-PrefixWartość 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:putObject 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".

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:putObject do bucketu, aby móc dołączać dane do obiektów. Ponadto w przypadku bucketu bez wersjonowania może być wymagane uprawnienie zasady s3:DeleteObject 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".

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.

LegalHoldWartość 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.
RetentionTimeCzas 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.

RetainUntilDateOkreś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.
LegalHoldWartość 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:

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ą:

  1. 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.
  2. 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.
  3. 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