Udostępnij za pośrednictwem


Kopiowanie obiektu blob z adresu URL obiektu źródłowego za pomocą języka Java

W tym artykule pokazano, jak skopiować obiekt blob z adresu URL obiektu źródłowego przy użyciu biblioteki klienta usługi Azure Storage dla języka Java. Obiekt blob można skopiować ze źródła na tym samym koncie magazynu, ze źródła na innym koncie magazynu lub z dowolnego dostępnego obiektu pobranego za pośrednictwem żądania HTTP GET dla danego adresu URL.

Metody biblioteki klienta opisane w tym artykule korzystają z operacji Put Blob From URL i Put Block From URL REST API . Te metody są preferowane w scenariuszach kopiowania, w których chcesz przenieść dane na konto magazynu i mieć adres URL obiektu źródłowego. W przypadku operacji kopiowania, w których chcesz zaplanować asynchroniczne, zobacz Kopiowanie obiektu blob z planowaniem asynchronicznym przy użyciu języka Java.

Wymagania wstępne

  • W tym artykule założono, że masz już skonfigurowany projekt do pracy z biblioteką klienta usługi Azure Blob Storage dla języka Java. Aby dowiedzieć się więcej na temat konfigurowania projektu, w tym instalacji pakietu, dodawania import dyrektyw i tworzenia autoryzowanego obiektu klienta, zobacz Rozpoczynanie pracy z usługami Azure Storage i Java.
  • Mechanizm autoryzacji musi mieć uprawnienia do wykonywania operacji kopiowania. Aby dowiedzieć się więcej, zobacz wskazówki dotyczące autoryzacji dla następujących operacji interfejsu API REST:

Informacje o kopiowaniu obiektów blob z adresu URL obiektu źródłowego

Operacja Put Blob From URL tworzy nowy blokowy obiekt blob, w którym zawartość obiektu blob jest odczytywana z danego adresu URL. Operacja jest wykonywana synchronicznie.

Źródło może być dowolnym obiektem, który można pobrać za pośrednictwem standardowego żądania HTTP GET dla danego adresu URL. Obejmuje to blokowe obiekty blob, uzupełnialne obiekty blob, stronicowe obiekty blob, migawki obiektów blob, wersje obiektów blob lub dowolny dostępny obiekt wewnątrz platformy Azure lub poza nią.

Gdy obiekt źródłowy jest blokowym obiektem blob, zostanie skopiowana cała zatwierdzona zawartość obiektu blob. Lista bloków nie jest jednak zachowywana, a niezatwierdzone bloki nie są kopiowane. Zawartość docelowego obiektu blob jest identyczna z zawartością źródła, ale zatwierdzona lista bloków nie jest zachowywana.

Miejsce docelowe jest zawsze blokowym obiektem blob, istniejącym blokowym obiektem blob lub nowym blokowym obiektem blob utworzonym przez operację. Zawartość istniejącego obiektu blob jest zastępowana zawartością nowego obiektu blob.

Operacja Put Blob From URL zawsze kopiuje cały źródłowy obiekt blob. Kopiowanie zakresu bajtów lub zestawu bloków nie jest obsługiwane. Aby wykonać częściowe aktualizacje zawartości blokowego obiektu blob przy użyciu źródłowego adresu URL, użyj interfejsu API Put Block From URL oraz umieść listę bloków.

Aby dowiedzieć się więcej na temat Put Blob From URL operacji, w tym ograniczeń rozmiaru obiektu blob i zagadnień dotyczących rozliczeń, zobacz Put Blob From URL uwagi.

Kopiowanie obiektu blob z adresu URL obiektu źródłowego

Ta sekcja zawiera omówienie metod udostępnianych przez bibliotekę klienta usługi Azure Storage dla języka Java w celu wykonania operacji kopiowania z adresu URL obiektu źródłowego.

Następujące metody opakowują operację interfejsu API REST Put Blob From URL i tworzą nowy blokowy obiekt blob, w którym zawartość obiektu blob jest odczytywana z danego adresu URL:

Te metody są preferowane w scenariuszach, w których chcesz przenieść dane na konto magazynu i mieć adres URL obiektu źródłowego.

W przypadku dużych obiektów można pracować z poszczególnymi blokami. Poniższa metoda opakowuje operację interfejsu API REST Put Block From URL . Ta metoda tworzy nowy blok do zatwierdzenia w ramach obiektu blob, w którym zawartość jest odczytywana z źródłowego adresu URL:

Kopiowanie obiektu blob ze źródła na platformie Azure

Jeśli kopiujesz obiekt blob ze źródła na platformie Azure, dostęp do źródłowego obiektu blob można autoryzować za pośrednictwem identyfikatora Microsoft Entra ID, sygnatury dostępu współdzielonego (SAS) lub klucza konta.

Poniższy przykład przedstawia scenariusz kopiowania ze źródłowego obiektu blob na platformie Azure. Metoda uploadFromUrl może opcjonalnie zaakceptować parametr logiczny, aby wskazać, czy istniejący obiekt blob powinien zostać zastąpiony, jak pokazano w przykładzie.

public void copyFromSourceInAzure(BlobClient sourceBlob, BlockBlobClient destinationBlob) {
    // Get the source blob URL and create the destination blob
    // set overwrite param to true if you want to overwrite an existing blob
    destinationBlob.uploadFromUrl(sourceBlob.getBlobUrl(), false);
}

Metoda uploadFromUrlWithResponse może również zaakceptować parametr BlobUploadFromUrlOptions , aby określić dalsze opcje operacji.

Kopiowanie obiektu blob ze źródła zewnętrznego

Operację kopiowania można wykonać na dowolnym obiekcie źródłowym, który można pobrać za pośrednictwem żądania HTTP GET dla danego adresu URL, w tym obiektów dostępnych poza platformą Azure. Poniższy przykład przedstawia scenariusz kopiowania obiektu blob z dostępnego adresu URL obiektu źródłowego.

public void copyFromExternalSource(String sourceURL, BlockBlobClient destinationBlob) {
    // Create the destination blob from the source URL
    // set overwrite param to true if you want to overwrite an existing blob
    destinationBlob.uploadFromUrl(sourceURL, false);
}

Zasoby

Aby dowiedzieć się więcej na temat kopiowania obiektów blob przy użyciu biblioteki klienta usługi Azure Blob Storage dla języka Java, zobacz następujące zasoby.

Operacje interfejsu API REST

Zestaw Azure SDK dla języka Java zawiera biblioteki, które bazują na interfejsie API REST platformy Azure, co umożliwia interakcję z operacjami interfejsu API REST za pomocą znanych paradygmatów języka Java. Metody biblioteki klienta opisane w tym artykule korzystają z następujących operacji interfejsu API REST:

Przykłady kodu

Zasoby biblioteki klienta