このブラウザーはサポートされなくなりました。
Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。
public final classBlobContainerClient
Client to a container. It may only be instantiated through aBlobContainerClientBuilder or via the methodgetBlobContainerClient(String containerName). This class does not hold any state about a particular container but is instead a convenient way of sending off appropriate requests to the resource on the service. It may also be used to construct URLs to blobs.
This client contains operations on a container. Operations on a blob are available onBlobClient throughgetBlobClient(String blobName), and operations on the service are available onBlobServiceClient.
Please refer to theAzure Docs for more information on containers.
Modifier and Type | Field and Description |
---|---|
static finalString | LOG_CONTAINER_NAME Special container name for the logs container in the Storage account. |
static finalString | ROOT_CONTAINER_NAME Special container name for the root container in the Storage account. |
static finalString | STATIC_WEBSITE_CONTAINER_NAME Special container name for the static website container in the Storage account. |
public static final String LOG_CONTAINER_NAME
Special container name for the logs container in the Storage account.
public static final String ROOT_CONTAINER_NAME
Special container name for the root container in the Storage account.
public static final String STATIC_WEBSITE_CONTAINER_NAME
Special container name for the static website container in the Storage account.
public void create()
Creates a new container within a storage account. If a container with the same name already exists, the operation fails. For more information, see theAzure Docs.
Code Samples
try { client.create(); System.out.printf("Create completed%n"); } catch (BlobStorageException error) { if (error.getErrorCode().equals(BlobErrorCode.CONTAINER_ALREADY_EXISTS)) { System.out.printf("Can't create container. It already exists %n"); } }
public boolean createIfNotExists()
Creates a new container within a storage account if it does not exist. For more information, see theAzure Docs.
Code Samples
boolean result = client.createIfNotExists(); System.out.println("Create completed: " + result);
Returns:
true
if container is successfully created,false
if container already exists.public Response<Boolean> createIfNotExistsWithResponse(BlobContainerCreateOptions options, Duration timeout, Context context)
Creates a new container within a storage account if it does not exist. For more information, see theAzure Docs.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value"); Context context = new Context("Key", "Value"); BlobContainerCreateOptions options = new BlobContainerCreateOptions().setMetadata(metadata) .setPublicAccessType(PublicAccessType.CONTAINER); Response<Boolean> response = client.createIfNotExistsWithResponse(options, timeout, context); if (response.getStatusCode() == 409) { System.out.println("Already existed."); } else { System.out.printf("Create completed with status %d%n", response.getStatusCode()); }
Parameters:
Returns:
public Response<Void> createWithResponse(Map<String,String> metadata, PublicAccessType accessType, Duration timeout, Context context)
Creates a new container within a storage account. If a container with the same name already exists, the operation fails. For more information, see theAzure Docs.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value"); Context context = new Context("Key", "Value"); System.out.printf("Create completed with status %d%n", client.createWithResponse(metadata, PublicAccessType.CONTAINER, timeout, context).getStatusCode());
Parameters:
Returns:
public void delete()
Marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection. For more information, see theAzure Docs.
Code Samples
try { client.delete(); System.out.printf("Delete completed%n"); } catch (BlobStorageException error) { if (error.getErrorCode().equals(BlobErrorCode.CONTAINER_NOT_FOUND)) { System.out.printf("Delete failed. Container was not found %n"); } }
public boolean deleteIfExists()
Marks the specified container for deletion if it exists. The container and any blobs contained within it are later deleted during garbage collection. For more information, see theAzure Docs.
Code Samples
boolean result = client.deleteIfExists(); System.out.println("Delete completed: " + result);
Returns:
true
if container is successfully deleted,false
if container does not exist.public Response<Boolean> deleteIfExistsWithResponse(BlobRequestConditions requestConditions, Duration timeout, Context context)
Marks the specified container for deletion if it exists. The container and any blobs contained within it are later deleted during garbage collection. For more information, see theAzure Docs.
Code Samples
BlobRequestConditions requestConditions = new BlobRequestConditions() .setLeaseId(leaseId) .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3)); Context context = new Context("Key", "Value"); Response<Boolean> response = client.deleteIfExistsWithResponse(requestConditions, timeout, context); if (response.getStatusCode() == 404) { System.out.println("Does not exist."); } else { System.out.printf("Delete completed with status %d%n", response.getStatusCode()); }
Parameters:
Returns:
public Response<Void> deleteWithResponse(BlobRequestConditions requestConditions, Duration timeout, Context context)
Marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection. For more information, see theAzure Docs.
Code Samples
BlobRequestConditions requestConditions = new BlobRequestConditions() .setLeaseId(leaseId) .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3)); Context context = new Context("Key", "Value"); System.out.printf("Delete completed with status %d%n", client.deleteWithResponse( requestConditions, timeout, context).getStatusCode());
Parameters:
Returns:
public boolean exists()
Gets if the container this client represents exists in the cloud.
Code Samples
System.out.printf("Exists? %b%n", client.exists());
Returns:
public Response<Boolean> existsWithResponse(Duration timeout, Context context)
Gets if the container this client represents exists in the cloud.
Code Samples
Context context = new Context("Key", "Value"); System.out.printf("Exists? %b%n", client.existsWithResponse(timeout, context).getValue());
Parameters:
Returns:
public PagedIterable<TaggedBlobItem> findBlobsByTags(FindBlobsOptions options, Duration timeout, Context context)
Returns a lazy loaded list of blobs in this account whose tags match the query expression. The returnedPagedIterable<T> can be consumed while new items are automatically retrieved as needed. For more information, including information on the query syntax, see theAzure Docs.
Code Samples
Context context = new Context("Key", "Value"); client.findBlobsByTags(new FindBlobsOptions("where=tag=value").setMaxResultsPerPage(10), timeout, context) .forEach(blob -> System.out.printf("Name: %s%n", blob.getName()));
Parameters:
Returns:
public PagedIterable<TaggedBlobItem> findBlobsByTags(String query)
Returns a lazy loaded list of blobs in this container whose tags match the query expression. The returnedPagedIterable<T> can be consumed while new items are automatically retrieved as needed. For more information, including information on the query syntax, see theAzure Docs.
Code Samples
TODO
client.findBlobsByTags("where=tag=value").forEach(blob -> System.out.printf("Name: %s%n", blob.getName()));
Parameters:
Returns:
public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues)
Generates a service SAS for the container using the specifiedBlobServiceSasSignatureValues
Note : The client must be authenticated viaStorageSharedKeyCredential
SeeBlobServiceSasSignatureValues for more information on how to construct a service SAS.
Code Samples
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1); BlobContainerSasPermission permission = new BlobContainerSasPermission().setReadPermission(true); BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, permission) .setStartTime(OffsetDateTime.now()); client.generateSas(values); // Client must be authenticated via StorageSharedKeyCredential
Parameters:
Returns:
String
representing the SAS query parameters.public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Consumer<String> stringToSignHandler, Context context)
Generates a service SAS for the container using the specifiedBlobServiceSasSignatureValues
Note : The client must be authenticated viaStorageSharedKeyCredential
SeeBlobServiceSasSignatureValues for more information on how to construct a service SAS.
Parameters:
Returns:
String
representing the SAS query parameters.public String generateSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, Context context)
Generates a service SAS for the container using the specifiedBlobServiceSasSignatureValues
Note : The client must be authenticated viaStorageSharedKeyCredential
SeeBlobServiceSasSignatureValues for more information on how to construct a service SAS.
Code Samples
OffsetDateTime expiryTime = OffsetDateTime.now().plusDays(1); BlobContainerSasPermission permission = new BlobContainerSasPermission().setReadPermission(true); BlobServiceSasSignatureValues values = new BlobServiceSasSignatureValues(expiryTime, permission) .setStartTime(OffsetDateTime.now()); // Client must be authenticated via StorageSharedKeyCredential client.generateSas(values, new Context("key", "value"));
Parameters:
Returns:
String
representing the SAS query parameters.public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey)
Generates a user delegation SAS for the container using the specifiedBlobServiceSasSignatureValues.
SeeBlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Code Samples
OffsetDateTime myExpiryTime = OffsetDateTime.now().plusDays(1); BlobContainerSasPermission myPermission = new BlobContainerSasPermission().setReadPermission(true); BlobServiceSasSignatureValues myValues = new BlobServiceSasSignatureValues(expiryTime, permission) .setStartTime(OffsetDateTime.now()); client.generateUserDelegationSas(values, userDelegationKey);
Parameters:
Returns:
String
representing the SAS query parameters.public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Consumer<String> stringToSignHandler, Context context)
Generates a user delegation SAS for the container using the specifiedBlobServiceSasSignatureValues.
SeeBlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Parameters:
Returns:
String
representing the SAS query parameters.public String generateUserDelegationSas(BlobServiceSasSignatureValues blobServiceSasSignatureValues, UserDelegationKey userDelegationKey, String accountName, Context context)
Generates a user delegation SAS for the container using the specifiedBlobServiceSasSignatureValues.
SeeBlobServiceSasSignatureValues for more information on how to construct a user delegation SAS.
Code Samples
OffsetDateTime myExpiryTime = OffsetDateTime.now().plusDays(1); BlobContainerSasPermission myPermission = new BlobContainerSasPermission().setReadPermission(true); BlobServiceSasSignatureValues myValues = new BlobServiceSasSignatureValues(expiryTime, permission) .setStartTime(OffsetDateTime.now()); client.generateUserDelegationSas(values, userDelegationKey, accountName, new Context("key", "value"));
Parameters:
Returns:
String
representing the SAS query parameters.public BlobContainerAccessPolicies getAccessPolicy()
Returns the container's permissions. The permissions indicate whether container's blobs may be accessed publicly. For more information, see theAzure Docs.
Code Samples
BlobContainerAccessPolicies accessPolicies = client.getAccessPolicy(); System.out.printf("Blob Access Type: %s%n", accessPolicies.getBlobAccessType()); for (BlobSignedIdentifier identifier : accessPolicies.getIdentifiers()) { System.out.printf("Identifier Name: %s, Permissions %s%n", identifier.getId(), identifier.getAccessPolicy().getPermissions()); }
Returns:
public Response<BlobContainerAccessPolicies> getAccessPolicyWithResponse(String leaseId, Duration timeout, Context context)
Returns the container's permissions. The permissions indicate whether container's blobs may be accessed publicly. For more information, see theAzure Docs.
Code Samples
Context context = new Context("Key", "Value"); BlobContainerAccessPolicies accessPolicies = client.getAccessPolicyWithResponse(leaseId, timeout, context) .getValue(); System.out.printf("Blob Access Type: %s%n", accessPolicies.getBlobAccessType()); for (BlobSignedIdentifier identifier : accessPolicies.getIdentifiers()) { System.out.printf("Identifier Name: %s, Permissions %s%n", identifier.getId(), identifier.getAccessPolicy().getPermissions()); }
Parameters:
Returns:
public StorageAccountInfo getAccountInfo(Duration timeout)
Returns the sku name and account kind for the account. For more information, please see theAzure Docs.
Parameters:
StorageAccountInfo accountInfo = client.getAccountInfo(timeout); System.out.printf("Account Kind: %s, SKU: %s%n", accountInfo.getAccountKind(), accountInfo.getSkuName());
Returns:
public Response<StorageAccountInfo> getAccountInfoWithResponse(Duration timeout, Context context)
Returns the sku name and account kind for the account. For more information, please see theAzure Docs.
Code Samples
Context context = new Context("Key", "Value"); StorageAccountInfo accountInfo = client.getAccountInfoWithResponse(timeout, context).getValue(); System.out.printf("Account Kind: %s, SKU: %s%n", accountInfo.getAccountKind(), accountInfo.getSkuName());
Parameters:
Returns:
public String getAccountName()
Get associated account name.
Returns:
public String getAccountUrl()
Get the url of the storage account.
Returns:
public BlobClient getBlobClient(String blobName)
Initializes a new BlobClient object by concatenating blobName to the end of ContainerAsyncClient's URL. The new BlobClient uses the same request policy pipeline as the ContainerAsyncClient.
Parameters:
String
representing the name of the blob. If the blob name contains special characters,pass in the url encoded version of the blob name.Code SamplesBlobClient blobClient = client.getBlobClient(blobName);
Returns:
public BlobClient getBlobClient(String blobName, String snapshot)
Initializes a new BlobClient object by concatenating blobName to the end of ContainerAsyncClient's URL. The new BlobClient uses the same request policy pipeline as the ContainerAsyncClient.
Code Samples
BlobClient blobClient = client.getBlobClient(blobName, snapshot);
Parameters:
String
representing the name of the blob. If the blob name contains special characters,pass in the url encoded version of the blob name.Returns:
public String getBlobContainerName()
Get the container name.
Code Samples
String containerName = client.getBlobContainerName(); System.out.println("The name of the blob is " + containerName);
Returns:
public String getBlobContainerUrl()
Gets the URL of the container represented by this client.
Returns:
public BlobClient getBlobVersionClient(String blobName, String versionId)
Initializes a new BlobClient object by concatenating blobName to the end of ContainerAsyncClient's URL. The new BlobClient uses the same request policy pipeline as the ContainerAsyncClient.
Parameters:
String
representing the name of the blob. If the blob name contains special characters,pass in the url encoded version of the blob name.null
to interact with the latest blob version.Returns:
public CpkInfo getCustomerProvidedKey()
Gets theCpkInfo associated with this client that will be passed toBlobClient whengetBlobClient(String blobName) is called.
Returns:
public String getEncryptionScope()
Gets theencryption scope
used to encrypt this blob's content on the server.
Returns:
public HttpPipeline getHttpPipeline()
Gets theHttpPipeline powering this client.
Returns:
public BlobContainerProperties getProperties()
Returns the container's metadata and system properties. For more information, see theAzure Docs.
Code Samples
BlobContainerProperties properties = client.getProperties(); System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n", properties.getBlobPublicAccess(), properties.hasLegalHold(), properties.hasImmutabilityPolicy());
Returns:
public Response<BlobContainerProperties> getPropertiesWithResponse(String leaseId, Duration timeout, Context context)
Returns the container's metadata and system properties. For more information, see theAzure Docs.
Code Samples
Context context = new Context("Key", "Value"); BlobContainerProperties properties = client.getPropertiesWithResponse(leaseId, timeout, context) .getValue(); System.out.printf("Public Access Type: %s, Legal Hold? %b, Immutable? %b%n", properties.getBlobPublicAccess(), properties.hasLegalHold(), properties.hasImmutabilityPolicy());
Parameters:
Returns:
public BlobServiceClient getServiceClient()
Get a client pointing to the account.
Returns:
public BlobServiceVersion getServiceVersion()
Gets the service version the client is using.
Returns:
public PagedIterable<BlobItem> listBlobs()
Returns a lazy loaded list of blobs in this container, with folder structures flattened. The returnedPagedIterable<T> can be consumed through while new items are automatically retrieved as needed.
Blob names are returned in lexicographic order.
For more information, see theAzure Docs.
Code Samples
client.listBlobs().forEach(blob -> System.out.printf("Name: %s, Directory? %b%n", blob.getName(), blob.isPrefix()));
Returns:
public PagedIterable<BlobItem> listBlobs(ListBlobsOptions options, Duration timeout)
Returns a lazy loaded list of blobs in this container, with folder structures flattened. The returnedPagedIterable<T> can be consumed through while new items are automatically retrieved as needed.
Blob names are returned in lexicographic order.
For more information, see theAzure Docs.
Code Samples
ListBlobsOptions options = new ListBlobsOptions() .setPrefix("prefixToMatch") .setDetails(new BlobListDetails() .setRetrieveDeletedBlobs(true) .setRetrieveSnapshots(true)); client.listBlobs(options, timeout).forEach(blob -> System.out.printf("Name: %s, Directory? %b, Deleted? %b, Snapshot ID: %s%n", blob.getName(), blob.isPrefix(), blob.isDeleted(), blob.getSnapshot()));
Parameters:
Returns:
public PagedIterable<BlobItem> listBlobs(ListBlobsOptions options, String continuationToken, Duration timeout)
Returns a lazy loaded list of blobs in this container, with folder structures flattened. The returnedPagedIterable<T> can be consumed through while new items are automatically retrieved as needed.
Blob names are returned in lexicographic order.
For more information, see theAzure Docs.
Code Samples
ListBlobsOptions options = new ListBlobsOptions() .setPrefix("prefixToMatch") .setDetails(new BlobListDetails() .setRetrieveDeletedBlobs(true) .setRetrieveSnapshots(true)); String continuationToken = "continuationToken"; client.listBlobs(options, continuationToken, timeout).forEach(blob -> System.out.printf("Name: %s, Directory? %b, Deleted? %b, Snapshot ID: %s%n", blob.getName(), blob.isPrefix(), blob.isDeleted(), blob.getSnapshot()));
Parameters:
Returns:
public PagedIterable<BlobItem> listBlobsByHierarchy(String delimiter, ListBlobsOptions options, Duration timeout)
Returns a reactive Publisher emitting all the blobs and prefixes (directories) under the given prefix (directory). Directories will haveisPrefix() set to true.
Blob names are returned in lexicographic order. For more information, see theAzure Docs.
E.g. listing a container containing a 'foo' folder, which contains blobs 'foo1' and 'foo2', and a blob on the root level 'bar', will return the following results when prefix=null:
will return the following results when prefix="foo/":
Code Samples
ListBlobsOptions options = new ListBlobsOptions() .setPrefix("directoryName") .setDetails(new BlobListDetails() .setRetrieveDeletedBlobs(true) .setRetrieveSnapshots(false)); client.listBlobsByHierarchy("/", options, timeout).forEach(blob -> System.out.printf("Name: %s, Directory? %b, Deleted? %b, Snapshot ID: %s%n", blob.getName(), blob.isPrefix(), blob.isDeleted(), blob.getSnapshot()));
Parameters:
Returns:
public PagedIterable<BlobItem> listBlobsByHierarchy(String directory)
Returns a reactive Publisher emitting all the blobs and directories (prefixes) under the given directory (prefix). Directories will haveisPrefix() set to true.
Blob names are returned in lexicographic order. For more information, see theAzure Docs.
E.g. listing a container containing a 'foo' folder, which contains blobs 'foo1' and 'foo2', and a blob on the root level 'bar', will return the following results when prefix=null:
will return the following results when prefix="foo/":
Code Samples
client.listBlobsByHierarchy("directoryName").forEach(blob -> System.out.printf("Name: %s, Directory? %b%n", blob.getName(), blob.isPrefix()));
Parameters:
Returns:
public void setAccessPolicy(PublicAccessType accessType, List<BlobSignedIdentifier> identifiers)
Sets the container's permissions. The permissions indicate whether blobs in a container may be accessed publicly. Note that, for each signed identifier, we will truncate the start and expiry times to the nearest second to ensure the time formatting is compatible with the service. For more information, see theAzure Docs.
Code Samples
BlobSignedIdentifier identifier = new BlobSignedIdentifier() .setId("name") .setAccessPolicy(new BlobAccessPolicy() .setStartsOn(OffsetDateTime.now()) .setExpiresOn(OffsetDateTime.now().plusDays(7)) .setPermissions("permissionString")); try { client.setAccessPolicy(PublicAccessType.CONTAINER, Collections.singletonList(identifier)); System.out.printf("Set Access Policy completed %n"); } catch (UnsupportedOperationException error) { System.out.printf("Set Access Policy completed %s%n", error); }
Parameters:
public Response<Void> setAccessPolicyWithResponse(PublicAccessType accessType, List<BlobSignedIdentifier> identifiers, BlobRequestConditions requestConditions, Duration timeout, Context context)
Sets the container's permissions. The permissions indicate whether blobs in a container may be accessed publicly. Note that, for each signed identifier, we will truncate the start and expiry times to the nearest second to ensure the time formatting is compatible with the service. For more information, see theAzure Docs.
Code Samples
BlobSignedIdentifier identifier = new BlobSignedIdentifier() .setId("name") .setAccessPolicy(new BlobAccessPolicy() .setStartsOn(OffsetDateTime.now()) .setExpiresOn(OffsetDateTime.now().plusDays(7)) .setPermissions("permissionString")); BlobRequestConditions requestConditions = new BlobRequestConditions() .setLeaseId(leaseId) .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3)); Context context = new Context("Key", "Value"); System.out.printf("Set access policy completed with status %d%n", client.setAccessPolicyWithResponse(PublicAccessType.CONTAINER, Collections.singletonList(identifier), requestConditions, timeout, context).getStatusCode());
Parameters:
Returns:
public void setMetadata(Map<String,String> metadata)
Sets the container's metadata. For more information, see theAzure Docs.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value"); try { client.setMetadata(metadata); System.out.printf("Set metadata completed with status %n"); } catch (UnsupportedOperationException error) { System.out.printf("Fail while setting metadata %n"); }
Parameters:
public Response<Void> setMetadataWithResponse(Map<String,String> metadata, BlobRequestConditions requestConditions, Duration timeout, Context context)
Sets the container's metadata. For more information, see theAzure Docs.
Code Samples
Map<String, String> metadata = Collections.singletonMap("metadata", "value"); BlobRequestConditions requestConditions = new BlobRequestConditions() .setLeaseId(leaseId) .setIfUnmodifiedSince(OffsetDateTime.now().minusDays(3)); Context context = new Context("Key", "Value"); System.out.printf("Set metadata completed with status %d%n", client.setMetadataWithResponse(metadata, requestConditions, timeout, context).getStatusCode());
Parameters:
Returns:
このページはお役に立ちましたか?
このページはお役に立ちましたか?