NAME
Net::Azure::StorageClient::Blob - Object representing a blob in Azure Blob Storage
VERSION
version 0.6
SYNOPSIS
my
$blobService
= Net::Azure::StorageClient::Blob->new(
account_name
=>
$you_account_name
,
primary_access_key
=>
$your_primary_access_key
,
[
container_name
=>
$container_name
, ]
[
protocol
=>
'https'
, ] );
my
$path
=
'path/to/blob'
;
my
$res
=
$blobService
->get_blob(
$path
);
# Request with custom http headers and query.
my
$params
= {
headers
=> {
'x-ms-foo'
=>
'bar'
},
options
=>
'timeout=90'
};
my
$res
=
$blobService
->set_metadata(
$path
,
$params
);
# return HTTP::Response object(s)
Operation on the Account(Blob Service)
list_containers
The List Containers operation returns a list of the containers under the specified account. http://msdn.microsoft.com/en-us/library/windowsazure/dd179352.aspx
my
$res
=
$blobService
->list_containers(
$params
);
set_blob_service_properties
The Set Blob Service Properties operation sets the properties of a storage account's Blob service, including Windows Azure Storage Analytics. You can also use this operation to set the default request version for all incoming requests that do not have a version specified. http://msdn.microsoft.com/en-us/library/windowsazure/hh452235.aspx
my
$params
= {
StorageServicePropertie
=> {
Logging
=> {
Read
=>
'true'
}, ... } };
my
$res
=
$blobService
->set_blob_service_properties(
$params
);
get_blob_service_properties
The Get Blob Service Properties operation gets the properties of a storage account's Blob service, including Windows Azure Storage Analytics. http://msdn.microsoft.com/en-us/library/windowsazure/hh452239.aspx
my
$res
=
$blobService
->get_blob_service_properties(
$params
);
Operation on Containers
create_container
The Create Container operation creates a new container under the specified account. If the container with the same name already exists, the operation fails. http://msdn.microsoft.com/en-us/library/windowsazure/dd179468.aspx
my
$res
=
$blobService
->create_container(
$container_name
);
# Create container and set container's permission.
my
$params
= {
public_access
=>
'blob'
};
# or container
my
$res
=
$blobService
->create_container(
$container_name
,
$params
);
get_container_properties
The Get Container Properties operation returns all user-defined metadata and system properties for the specified container. The data returned does not include the container's list of blobs. http://msdn.microsoft.com/en-us/library/windowsazure/dd179370.aspx
my
$res
=
$blobService
->get_container_properties(
$container_name
);
get_container_metadata
The Get Container Metadata operation returns all user-defined metadata for the container. http://msdn.microsoft.com/en-us/library/windowsazure/ee691976.aspx
my
$res
=
$blobService
->get_container_metadata(
$container_name
);
set_container_metadata
The Set Container Metadata operation sets one or more user-defined name-value pairs for the specified container. http://msdn.microsoft.com/en-us/library/windowsazure/dd179362.aspx
my
$res
=
$blobService
->set_container_metadata(
$container_name
, {
metadata
=> {
'foo'
=>
'bar'
} } );
# x-ms-meta-foo: bar
get_container_acl
The Get Container ACL operation gets the permissions for the specified container. The permissions indicate whether container data may be accessed publicly. http://msdn.microsoft.com/en-us/library/windowsazure/dd179469.aspx
my
$res
=
$blobService
->get_container_acl(
$container_name
);
set_container_acl
The Set Container ACL operation sets the permissions for the specified container. The permissions indicate whether blobs in a container may be accessed publicly. http://msdn.microsoft.com/en-us/library/windowsazure/dd179391.aspx
my
$res
=
$blobService
->set_container_acl(
$container_name
, {
public_access
=>
'blob'
} );
# or container
delete_container
The Delete Container operation marks the specified container for deletion. The container and any blobs contained within it are later deleted during garbage collection. http://msdn.microsoft.com/en-us/library/windowsazure/dd179408.aspx
my
$res
=
$blobService
->delete_container(
$container_name
);
lease_container
The Lease Container operation establishes and manages a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite. http://msdn.microsoft.com/en-us/library/windowsazure/jj159103.aspx
my
$params
= {
lease_parameters
=> {
'lease-action'
=>
'acquire'
, ... } };
my
$res
=
$blobService
->lease_container(
$container_name
,
$params
);
list_blobs
The List Blobs operation enumerates the list of blobs under the specified container. http://msdn.microsoft.com/en-us/library/windowsazure/dd135734.aspx
my
$res
=
$blobService
->list_blobs(
$container_name
);
download_container
Download all blobs of container to local directory.
my
$res
=
$blobService
->list_blobs(
$container_name
,
$dirname
);
# Download updated blobs only.
my
$params
= {
conditional
=> 1 };
my
$res
=
$blobService
->list_blobs(
$container_name
,
$dirname
,
$params
);
# Download updated blobs and delete deleted files of local directory.
my
$params
= {
conditional
=> 1,
sync
=> 1 };
my
$res
=
$blobService
->list_blobs(
$container_name
,
$dirname
,
$params
);
Operation on Blobs
put_blob
The Put Blob operation creates a new block blob or page blob, or updates the content of an existing block blob. http://msdn.microsoft.com/en-us/library/windowsazure/dd179451.aspx
my
$res
=
$blobService
->put_blob(
$path
,
$data
);
# Upload local file to blob.
my
$params
= {
filename
=>
'/path/to/filename'
};
my
$res
=
$blobService
->put_blob(
$path
,
$params
);
get_blob
The Get Blob operation reads or downloads a blob from the system, including its metadata and properties. You can also call Get Blob to read a snapshot. http://msdn.microsoft.com/en-us/library/windowsazure/dd179440.aspx
my
$res
=
$blobService
->get_blob(
$path
);
# Download blob to local file.
my
$params
= {
filename
=>
'/path/to/filename'
};
my
$res
=
$blobService
->get_blob(
$path
,
$params
);
get_blob_properties
The Get Blob Properties operation returns all user-defined metadata, standard HTTP properties, and system properties for the blob. It does not return the content of the blob. http://msdn.microsoft.com/en-us/library/windowsazure/dd179394.aspx
my
$res
=
$blobService
->get_blob_properties(
$path
);
set_blob_properties
The Set Blob Properties operation sets system properties on the blob. http://msdn.microsoft.com/en-us/library/windowsazure/ee691966.aspx
my
$params
= {
properties
=> {
'content-length'
=> 1024, ... } };
my
$res
=
$blobService
->set_blob_properties(
$path
,
$params
);
get_blob_metadata
The Get Blob Metadata operation returns all user-defined metadata for the specified blob http://msdn.microsoft.com/en-us/library/windowsazure/dd179350.aspx
my
$res
=
$blobService
->get_metadata(
$path
);
set_blob_metadata
The Set Blob Metadata operation sets user-defined metadata for the specified blob as one or more name-value pairs. http://msdn.microsoft.com/en-us/library/windowsazure/dd179414.aspx
# Set x-ms-meta-category and x-ms-meta-author metadata.
my
$params
= {
metadata
=> {
category
=>
'image'
author
=>
$author_name
} };
my
$res
=
$blobService
->set_blob_metadata(
$path
,
$params
);
lease_blob
The Lease Blob operation establishes and manages a lock on a blob for write and delete operations. http://msdn.microsoft.com/en-us/library/windowsazure/ee691972.aspx
my
$params
= {
lease_parameters
=> {
'lease-action'
=>
'acquire'
, ... } };
my
$res
=
$blobService
->lease_blob(
$path
,
$params
);
snapshot_blob
The Snapshot Blob operation creates a read-only snapshot of a blob. http://msdn.microsoft.com/en-us/library/windowsazure/ee691971.aspx
my
$res
=
$blobService
->snapshot_blob(
$path
);
copy_blob
The Copy Blob operation copies a blob to a destination within the storage account. http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx
my
$res
=
$blobService
->copy_blob(
$source_blob
,
$new_blob
);
abort_copy_blob
The Abort Copy Blob operation aborts a pending Copy Blob operation, and leaves a destination blob with zero length and full metadata. http://msdn.microsoft.com/en-us/library/windowsazure/jj159098.aspx
my
$params
= {
copyid
=>
$copyid
};
my
$res
=
$blobService
->abort_copy_blob(
$path
,
$params
);
delete_blob
The Delete Blob operation marks the specified blob or snapshot for deletion. The blob is later deleted during garbage collection. Note that in order to delete a blob, you must delete all of its snapshots. You can delete both at the same time with the Delete Blob operation. http://msdn.microsoft.com/en-us/library/windowsazure/dd179413.aspx
my
$res
=
$blobService
->delete_blob(
$path
);
rename_blob
Copy blob and delete copy source blob. http://msdn.microsoft.com/en-us/library/windowsazure/dd894037.aspx http://msdn.microsoft.com/en-us/library/windowsazure/dd179413.aspx
my
$res
=
$blobService
->rename_blob(
$source_blob
,
$new_blob
);
Operation on Block Blobs
put_block
The Put Block operation creates a new block to be committed as part of a blob. http://msdn.microsoft.com/en-us/library/windowsazure/dd135726.aspx
my
$params
= {
options
=>
"blockid=${blockid}"
};
my
$res
=
$blobService
->put_block(
$path
,
$params
);
put_block_list
The Put Block List operation writes a blob by specifying the list of block IDs that make up the blob. In order to be written as part of a blob, a block must have been successfully written to the server in a prior Put Block (REST API) operation. http://msdn.microsoft.com/en-us/library/windowsazure/dd179467.aspx
my
$params
= {
BlockList
=> {
Latest
=>
'foo'
} };
my
$res
=
$blobService
->put_block_list(
$path
,
$params
);
get_block_list
The Get Block List operation retrieves the list of blocks that have been uploaded as part of a block blob. http://msdn.microsoft.com/en-us/library/windowsazure/dd179400.aspx
my
$res
=
$blobService
->get_block_list(
$path
,
$params
);
Operation on Page Blobs
put_page
The Put Page operation writes a range of pages to a page blob. http://msdn.microsoft.com/en-us/library/windowsazure/ee691975.aspx
my
$params
= {
'page-write'
=>
'update'
,
'range'
=>
'bytes=0-65535'
};
my
$res
=
$blobService
->put_page(
$path
,
$params
);
get_page_ranges
The Get Page Ranges operation returns the list of valid page ranges for a page blob or snapshot of a page blob. http://msdn.microsoft.com/en-us/library/windowsazure/ee691973.aspx
my
$res
=
$blobService
->get_page_ranges(
$path
);
Other Operations
download
Download a blob(or directory or container) and save to local file(s).
my
$res
=
$blobService
->download(
$path
,
$filename
);
# Download files of directory(Updated files only).
my
$params
= {
conditional
=> 1 };
my
$res
=
$blobService
->download(
$path
,
$directory
,
$params
);
# Download files of directory(updated files only) and delete deleted files.
my
$params
= {
conditional
=> 1,
sync
=> 1 [,
include_invisible
=> 1 ] };
my
$res
=
$blobService
->download(
$path
,
$directory
,
$params
);
# Using multi-thread.
my
$params
= {
conditional
=> 1,
sync
=> 1,
use_thread
=> n(Count of thread) };
my
$res
=
$blobService
->download(
$path
,
$directory
,
$params
);
upload
Upload blob(s) from local file(s).
my
$res
=
$blobService
->upload(
$path
,
$filename
);
# Upload files of directory(updated files only).
my
$params
= {
conditional
=> 1 };
my
$res
=
$blobService
->upload(
$path
,
$directory
,
$perams
);
# Upload files of directory(updated files only) and delete deleted blobs.
my
$params
= {
conditional
=> 1,
sync
=> 1 [,
include_invisible
=> 1 ] };
my
$res
=
$blobService
->upload(
$path
,
$directory
,
$params
);
# Using multi-thread.
my
$params
= {
conditional
=> 1,
sync
=> 1,
use_thread
=> n(Count of thread) };
my
$res
=
$blobService
->upload(
$path
,
$directory
,
$params
);
sync
Synchronize between the directory of blob storage and the local directory.
my
$params
= {
direction
=>
'upload'
[,
include_invisible
=> 1 ] };
my
$res
=
$blobService
->sync(
$path
,
$directory
,
$params
);
# Using multi-thread.
my
$params
= {
direction
=>
'upload'
,
use_thread
=> n(Count of thread) };
my
$res
=
$blobService
->upload(
$path
,
$directory
,
$params
);
NAME
Net::Azure::StorageClient::Blob - Interface to Windows Azure Blob Service
AUTHOR
Junnama Noda <junnama@alfasado.jp>
COPYRIGHT AND LICENSE
This software is copyright (c) 2020 by Junnama Noda.
This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.