Class: Azure::Storage::Table::TableService
- Inherits:
-
StorageService
- Object
- Azure::Storage::Table::TableService
- Defined in:
- table/lib/azure/storage/table/table_service.rb
Class Method Summary collapse
-
.create(options = {}, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService].
-
.create_development(proxy_uri = nil, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] with Storage Emulator.
-
.create_from_connection_string(connection_string, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] from Environment Variables.
-
.create_from_env(&block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] from Environment Variables.
Instance Method Summary collapse
-
#create_table(table_name, options = {}) ⇒ nil
Public: Creates new table in the storage account.
-
#delete_entity(table_name, partition_key, row_key, options = {}) ⇒ Object
Public: Deletes an existing entity in the table.
-
#delete_table(table_name, options = {}) ⇒ Object
Public: Deletes the specified table and any data it contains.
- #entities_uri(table_name, partition_key = nil, row_key = nil, query = {}, options = {}) ⇒ Object
-
#execute_batch(batch, options = {}) ⇒ Object
Public: Executes a batch of operations.
-
#get_entity(table_name, partition_key, row_key, options = {}) ⇒ Object
Public: Gets an existing entity in the table.
-
#get_table(table_name, options = {}) ⇒ Object
Public: Gets the table.
-
#get_table_acl(table_name, options = {}) ⇒ Object
Public: Gets the access control list (ACL) for the table.
-
#initialize(options = {}, &block) ⇒ TableService
constructor
Public: Initializes an instance of [Azure::Storage::Table::TableService].
-
#insert_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts new entity to the table.
-
#insert_or_merge_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts or updates an existing entity within a table by merging new property values into the entity.
-
#insert_or_replace_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts or updates a new entity into a table.
-
#merge_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Updates an existing entity by updating the entity's properties.
-
#query_entities(table_name, options = {}) ⇒ Object
Public: Queries entities for the given table name.
-
#query_tables(options = {}) ⇒ Object
Public: Gets a list of all tables on the account.
-
#set_table_acl(table_name, options = {}) ⇒ Object
Public: Sets the access control list (ACL) for the table.
- #table_uri(name, query = {}, options = {}) ⇒ Object
-
#update_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Updates an existing entity in a table.
Constructor Details
#initialize(options = {}, &block) ⇒ TableService
Public: Initializes an instance of [Azure::Storage::Table::TableService]
Attributes
-
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:use_development_storage
- TrueClass|FalseClass. Whether to use storage emulator. -
:development_storage_proxy_uri
- String. Used with:use_development_storage
if emulator is hosted other than localhost. -
:storage_connection_string
- String. The storage connection string. -
:storage_account_name
- String. The name of the storage account. -
:storage_access_key
- Base64 String. The access key of the storage account. -
:storage_sas_token
- String. The signed access signature for the storage account or one of its service. -
:storage_table_host
- String. Specified Table serivce endpoint or hostname -
:storage_dns_suffix
- String. The suffix of a regional Storage Serivce, to -
:default_endpoints_protocol
- String. http or https -
:use_path_style_uri
- String. Whether use path style URI for specified endpoints -
:ca_file
- String. File path of the CA file if having issue with SSL -
:user_agent_prefix
- String. The user agent prefix that can identify the application calls the library -
:client
- Azure::Storage::Common::Client. The common client used to initalize the service.
The valid set of options include:
-
Storage Emulator:
:use_development_storage
required,:development_storage_proxy_uri
optionally -
Storage account name and key:
:storage_account_name
and:storage_access_key
required, set:storage_dns_suffix
necessarily -
Storage account name and SAS token:
:storage_account_name
and:storage_sas_token
required, set:storage_dns_suffix
necessarily -
Specified hosts and SAS token: At least one of the service host and SAS token. It's up to user to ensure the SAS token is suitable for the serivce
-
Azure::Storage::Common::Client: The common client used to initalize the service. This client can be initalized and used repeatedly.
-
Anonymous Table: only
:storage_table_host
, if it is to only access tables within a container
Additional notes:
-
Specified hosts can be set when use account name with access key or sas token
-
:default_endpoints_protocol
can be set if the scheme is not specified in hosts -
Storage emulator always use path style URI
-
:ca_file
is independent.
When empty options are given, it will try to read settings from Environment Variables. Refer to [Azure::Storage::Common::ClientOptions.env_vars_mapping] for the mapping relationship
154 155 156 157 158 159 160 161 162 163 164 |
# File 'table/lib/azure/storage/table/table_service.rb', line 154 def initialize( = {}, &block) = .clone client_config = [:client] ||= Azure::Storage::Common::Client::create(, &block) @user_agent_prefix = [:user_agent_prefix] if [:user_agent_prefix] @api_version = [:api_version] || Azure::Storage::Table::Default::STG_VERSION signer = [:signer] || client_config.signer || Auth::SharedKey.new(client_config.storage_account_name, client_config.storage_access_key) signer.api_ver = @api_version if signer.is_a? Azure::Storage::Common::Core::Auth::SharedAccessSignatureSigner super(signer, client_config.storage_account_name, , &block) @storage_service_host[:primary] = client.storage_table_host @storage_service_host[:secondary] = client.storage_table_host true end |
Class Method Details
.create(options = {}, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService]
Attributes
-
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:use_development_storage
- TrueClass|FalseClass. Whether to use storage emulator. -
:development_storage_proxy_uri
- String. Used with:use_development_storage
if emulator is hosted other than localhost. -
:storage_account_name
- String. The name of the storage account. -
:storage_access_key
- Base64 String. The access key of the storage account. -
:storage_sas_token
- String. The signed access signature for the storage account or one of its service. -
:storage_table_host
- String. Specified Table service endpoint or hostname -
:storage_dns_suffix
- String. The suffix of a regional Storage Service, to -
:default_endpoints_protocol
- String. http or https -
:use_path_style_uri
- String. Whether use path style URI for specified endpoints -
:ca_file
- String. File path of the CA file if having issue with SSL -
:ssl_version
- Symbol. The ssl version to be used, sample: :TLSv1_1, :TLSv1_2, for the details, see github.com/ruby/openssl/blob/master/lib/openssl/ssl.rb -
:ssl_min_version
- Symbol. The min ssl version supported, only supported in Ruby 2.5+ -
:ssl_max_version
- Symbol. The max ssl version supported, only supported in Ruby 2.5+ -
:user_agent_prefix
- String. The user agent prefix that can identify the application calls the library
The valid set of options include:
-
Storage Emulator:
:use_development_storage
required,:development_storage_proxy_uri
optionally -
Storage account name and key:
:storage_account_name
and:storage_access_key
required, set:storage_dns_suffix
necessarily -
Storage account name and SAS token:
:storage_account_name
and:storage_sas_token
required, set:storage_dns_suffix
necessarily -
Specified hosts and SAS token: At least one of the service host and SAS token. It's up to user to ensure the SAS token is suitable for the serivce
-
Anonymous Table: only
:storage_table_host
, if it is to only access tables within a container
Additional notes:
-
Specified hosts can be set when use account name with access key or sas token
-
:default_endpoints_protocol
can be set if the scheme is not specified in hosts -
Storage emulator always use path style URI
-
:ca_file
is independent.
When empty options are given, it will try to read settings from Environment Variables. Refer to [Azure::Storage::Common::ClientOptions.env_vars_mapping] for the mapping relationship
76 77 78 79 80 |
# File 'table/lib/azure/storage/table/table_service.rb', line 76 def create( = {}, &block) = { client: Azure::Storage::Common::Client::create(, &block), api_version: Azure::Storage::Table::Default::STG_VERSION } [:user_agent_prefix] = [:user_agent_prefix] if [:user_agent_prefix] Azure::Storage::Table::TableService.new(, &block) end |
.create_development(proxy_uri = nil, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] with Storage Emulator
Attributes
-
proxy_uri
- String. Used with:use_development_storage
if emulator is hosted other than localhost.
89 90 91 92 |
# File 'table/lib/azure/storage/table/table_service.rb', line 89 def create_development(proxy_uri = nil, &block) = { client: Azure::Storage::Common::Client::create_development(proxy_uri, &block), api_version: Azure::Storage::Table::Default::STG_VERSION } Azure::Storage::Table::TableService.new(, &block) end |
.create_from_connection_string(connection_string, &block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] from Environment Variables
Attributes
-
connection_string
- String. Please refer to azure.microsoft.com/en-us/documentation/articles/storage-configure-connection-string/.
109 110 111 112 |
# File 'table/lib/azure/storage/table/table_service.rb', line 109 def create_from_connection_string(connection_string, &block) = { client: Azure::Storage::Common::Client::create_from_connection_string(connection_string, &block), api_version: Azure::Storage::Table::Default::STG_VERSION } Azure::Storage::Table::TableService.new(, &block) end |
.create_from_env(&block) ⇒ Azure::Storage::Table::TableService
Public: Creates an instance of [Azure::Storage::Table::TableService] from Environment Variables
97 98 99 100 |
# File 'table/lib/azure/storage/table/table_service.rb', line 97 def create_from_env(&block) = { client: Azure::Storage::Common::Client::create_from_env(&block), api_version: Azure::Storage::Table::Default::STG_VERSION } Azure::Storage::Table::TableService.new(, &block) end |
Instance Method Details
#create_table(table_name, options = {}) ⇒ nil
Public: Creates new table in the storage account
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:accept
- String. Specifies the accepted content-type of the response payload. Possible values are::no_meta :min_meta :full_meta
-
:prefer
- String. Specifies whether the response should include the inserted entity in the payload. Possible values are:Azure::Storage::Common::HeaderConstants::PREFER_CONTENT Azure::Storage::Common::HeaderConstants::PREFER_NO_CONTENT
191 192 193 194 195 196 197 198 199 200 |
# File 'table/lib/azure/storage/table/table_service.rb', line 191 def create_table(table_name, = {}) headers = { Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string([:accept]), } headers[Azure::Storage::Common::HeaderConstants::PREFER] = [:prefer] unless [:prefer].nil? body = Serialization.hash_to_json("TableName" => table_name) call(:post, collection_uri(new_query()), body, headers, ) nil end |
#delete_entity(table_name, partition_key, row_key, options = {}) ⇒ Object
Public: Deletes an existing entity in the table.
Attributes
-
table_name
- String. The table name -
partition_key
- String. The partition key -
row_key
- String. The row key -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:if_match
- String. A matching condition which is required for update (optional, Default=“*”) -
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/dd135727
Returns nil on success
603 604 605 606 607 608 609 |
# File 'table/lib/azure/storage/table/table_service.rb', line 603 def delete_entity(table_name, partition_key, row_key, = {}) if_match = "*" if_match = [:if_match] if [:if_match] call(:delete, entities_uri(table_name, partition_key, row_key, new_query()), nil, { "If-Match" => if_match }, ) nil end |
#delete_table(table_name, options = {}) ⇒ Object
Public: Deletes the specified table and any data it contains.
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/dd179387
Returns nil on success
219 220 221 222 |
# File 'table/lib/azure/storage/table/table_service.rb', line 219 def delete_table(table_name, = {}) call(:delete, table_uri(table_name, new_query()), nil, {}, ) nil end |
#entities_uri(table_name, partition_key = nil, row_key = nil, query = {}, options = {}) ⇒ Object
704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 |
# File 'table/lib/azure/storage/table/table_service.rb', line 704 def entities_uri(table_name, partition_key = nil, row_key = nil, query = {}, = {}) return table_name if table_name.kind_of? ::URI path = if partition_key && row_key "%s(PartitionKey='%s',RowKey='%s')" % [ table_name.encode("UTF-8"), encodeODataUriValue(partition_key.encode("UTF-8")), encodeODataUriValue(row_key.encode("UTF-8")) ] else "%s()" % table_name.encode("UTF-8") end uri = generate_uri(path, query, ) qs = [] if query query.each do | key, val | key = key.encode("UTF-8") val = val.encode("UTF-8") if key[0] == "$" qs.push "#{key}#{::URI.encode_www_form("" => val)}" else qs.push ::URI.encode_www_form(key => val) end end end uri.query = qs.join "&" if qs.length > 0 uri end |
#execute_batch(batch, options = {}) ⇒ Object
Public: Executes a batch of operations.
Attributes
-
batch
- The Azure::Storage::Table::Batch instance to execute. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
See msdn.microsoft.com/en-us/library/azure/dd894038
Returns an array of results, one for each operation in the batch
630 631 632 633 634 635 636 637 638 639 640 641 642 643 |
# File 'table/lib/azure/storage/table/table_service.rb', line 630 def execute_batch(batch, = {}) headers = { Azure::Storage::Common::HeaderConstants::CONTENT_TYPE => "multipart/mixed; boundary=#{batch.batch_id}", Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string([:accept]), "Accept-Charset" => "UTF-8" } body = batch.to_body(self) [:request_location_mode] = Azure::Storage::Common::RequestLocationMode::PRIMARY_OR_SECONDARY response = call(:post, generate_uri("/$batch", new_query(), ), body, headers, , true) batch.parse_response(response) rescue => e raise_with_response(e, response) end |
#get_entity(table_name, partition_key, row_key, options = {}) ⇒ Object
Public: Gets an existing entity in the table.
Attributes
-
table_name
- String. The table name -
partition_key
- String. The partition key -
row_key
- String. The row key -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
Returns an Azure::Storage::Table::Entity instance on success
664 665 666 667 668 669 |
# File 'table/lib/azure/storage/table/table_service.rb', line 664 def get_entity(table_name, partition_key, row_key, = {}) [:partition_key] = partition_key [:row_key] = row_key results = query_entities(table_name, ) results.length > 0 ? results[0] : nil end |
#get_table(table_name, options = {}) ⇒ Object
Public: Gets the table.
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
Returns the last updated time for the table
241 242 243 244 245 246 247 248 249 250 |
# File 'table/lib/azure/storage/table/table_service.rb', line 241 def get_table(table_name, = {}) headers = { Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string(:full_meta), } [:request_location_mode] = Azure::Storage::Common::RequestLocationMode::PRIMARY_OR_SECONDARY response = call(:get, table_uri(table_name, new_query(), ), nil, headers, ) Serialization.table_entries_from_json(response.body) rescue => e raise_with_response(e, response) end |
#get_table_acl(table_name, options = {}) ⇒ Object
Public: Gets the access control list (ACL) for the table.
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
See msdn.microsoft.com/en-us/library/azure/jj159100
Returns a list of Azure::Storage::Entity::SignedIdentifier instances
315 316 317 318 319 320 321 322 323 324 325 326 327 |
# File 'table/lib/azure/storage/table/table_service.rb', line 315 def get_table_acl(table_name, = {}) query = new_query() query[Azure::Storage::Common::QueryStringConstants::COMP] = Azure::Storage::Common::QueryStringConstants::ACL [:request_location_mode] = Azure::Storage::Common::RequestLocationMode::PRIMARY_OR_SECONDARY response = call(:get, generate_uri(table_name, query, ), nil, { "x-ms-version" => "2012-02-12" }, ) signed_identifiers = [] signed_identifiers = Serialization.signed_identifiers_from_xml response.body unless response.body == nil || response.body.length < 1 signed_identifiers rescue => e raise_with_response(e, response) end |
#insert_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts new entity to the table.
Attributes
-
table_name
- String. The table name -
entity_values
- Hash. A hash of the name/value pairs for the entity. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:accept
- String. Specifies the accepted content-type of the response payload. Possible values are::no_meta :min_meta :full_meta
See msdn.microsoft.com/en-us/library/azure/dd179433
Returns a Azure::Storage::Entity::Table::Entity
382 383 384 385 386 387 388 389 390 391 392 393 394 |
# File 'table/lib/azure/storage/table/table_service.rb', line 382 def insert_entity(table_name, entity_values, = {}) body = Serialization.hash_to_json(entity_values) #time = EdmType::to_edm_time(Time.now) headers = { Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string([:accept]) } response = call(:post, entities_uri(table_name, nil, nil, new_query()), body, headers, ) result = Serialization.entity_from_json(response.body) result.etag = response.headers[Azure::Storage::Common::HeaderConstants::ETAG] if result.etag.nil? result rescue => e raise_with_response(e, response) end |
#insert_or_merge_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts or updates an existing entity within a table by merging new property values into the entity.
Attributes
-
table_name
- String. The table name -
entity_values
- Hash. A hash of the name/value pairs for the entity. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/hh452241
Returns the ETag for the entity on success
555 556 557 558 |
# File 'table/lib/azure/storage/table/table_service.rb', line 555 def insert_or_merge_entity(table_name, entity_values, = {}) [:create_if_not_exists] = true merge_entity(table_name, entity_values, ) end |
#insert_or_replace_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Inserts or updates a new entity into a table.
Attributes
-
table_name
- String. The table name -
entity_values
- Hash. A hash of the name/value pairs for the entity. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/hh452242
Returns the ETag for the entity on success
578 579 580 581 |
# File 'table/lib/azure/storage/table/table_service.rb', line 578 def insert_or_replace_entity(table_name, entity_values, = {}) [:create_if_not_exists] = true update_entity(table_name, entity_values, ) end |
#merge_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Updates an existing entity by updating the entity's properties. This operation does not replace the existing entity, as the update_entity operation does.
Attributes
-
table_name
- String. The table name -
entity_values
- Hash. A hash of the name/value pairs for the entity. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:if_match
- String. A matching condition which is required for update (optional, Default=“*”) -
:create_if_not_exists
- Boolean. If true, and partition_key and row_key do not reference and existing entity,that entity will be inserted. If false, the operation will fail. (optional, Default=false)
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/dd179392
Returns the ETag for the entity on success
518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 |
# File 'table/lib/azure/storage/table/table_service.rb', line 518 def merge_entity(table_name, entity_values, = {}) if_match = "*" if_match = [:if_match] if [:if_match] uri = entities_uri(table_name, entity_values[:PartitionKey] || entity_values["PartitionKey"], entity_values[:RowKey] || entity_values["RowKey"], new_query()) headers = { "X-HTTP-Method" => "MERGE" } headers["If-Match"] = if_match || "*" unless [:create_if_not_exists] body = Serialization.hash_to_json(entity_values) response = call(:post, uri, body, headers, ) response.headers["etag"] rescue => e raise_with_response(e, response) end |
#query_entities(table_name, options = {}) ⇒ Object
Public: Queries entities for the given table name
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:partition_key
- String. The partition key (optional) -
:row_key
- String. The row key (optional) -
:select
- Array. An array of property names to return (optional) -
:filter
- String. A filter expression (optional) -
:top
- Integer. A limit for the number of results returned (optional) -
:continuation_token
- Hash. The continuation token. -
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
-
:accept
- String. Specifies the accepted content-type of the response payload. Possible values are::no_meta :min_meta :full_meta
See msdn.microsoft.com/en-us/library/azure/dd179421
Returns an array with an extra continuation_token property on success
425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 |
# File 'table/lib/azure/storage/table/table_service.rb', line 425 def query_entities(table_name, = {}) query = new_query() query[Azure::Storage::Common::QueryStringConstants::SELECT] = [:select].join "," if [:select] query[Azure::Storage::Common::QueryStringConstants::FILTER] = [:filter] if [:filter] query[Azure::Storage::Common::QueryStringConstants::TOP] = [:top].to_s if [:top] unless [:partition_key] && [:row_key] query[Azure::Storage::Common::QueryStringConstants::NEXT_PARTITION_KEY] = [:continuation_token][:next_partition_key] if [:continuation_token] && [:continuation_token][:next_partition_key] query[Azure::Storage::Common::QueryStringConstants::NEXT_ROW_KEY] = [:continuation_token][:next_row_key] if [:continuation_token] && [:continuation_token][:next_row_key] [:request_location_mode] = Azure::Storage::Common::RequestLocationMode::PRIMARY_OR_SECONDARY uri = entities_uri(table_name, [:partition_key], [:row_key], query, ) headers = { Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string([:accept]) } response = call(:get, uri, nil, headers, ) entities = Azure::Storage::Common::Service::EnumerationResults.new.push(*Serialization.entities_from_json(response.body)) entities.continuation_token = nil entities.continuation_token = { next_partition_key: response.headers[TableConstants::CONTINUATION_NEXT_PARTITION_KEY], next_row_key: response.headers[TableConstants::CONTINUATION_NEXT_ROW_KEY] } if response.headers[TableConstants::CONTINUATION_NEXT_PARTITION_KEY] entities rescue => e raise_with_response(e, response) end |
#query_tables(options = {}) ⇒ Object
Public: Gets a list of all tables on the account.
Attributes
-
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:next_table_token
- String. A token used to enumerate the next page of results, when the list of tables islarger than a single operation can return at once. (optional)
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
-
:location_mode
- LocationMode. Specifies the location mode used to decidewhich location the request should be sent to.
-
:accept
- String. Specifies the accepted content-type of the response payload. Possible values are::no_meta :min_meta :full_meta
See msdn.microsoft.com/en-us/library/azure/dd179405
Returns an array with an extra continuation_token property on success
276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 |
# File 'table/lib/azure/storage/table/table_service.rb', line 276 def query_tables( = {}) query = new_query() query[TableConstants::NEXT_TABLE_NAME] = [:next_table_token] if [:next_table_token] [:request_location_mode] = Azure::Storage::Common::RequestLocationMode::PRIMARY_OR_SECONDARY uri = collection_uri(query, ) headers = { Azure::Storage::Common::HeaderConstants::ACCEPT => Serialization.get_accept_string([:accept]), } response = call(:get, uri, nil, headers, ) entries = Serialization.table_entries_from_json(response.body) || [] values = Azure::Storage::Common::Service::EnumerationResults.new(entries) values.continuation_token = response.headers[TableConstants::CONTINUATION_NEXT_TABLE_NAME] values rescue => e raise_with_response(e, response) end |
#set_table_acl(table_name, options = {}) ⇒ Object
Public: Sets the access control list (ACL) for the table.
Attributes
-
table_name
- String. The table name -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:signed_identifiers
- Array. A list of Azure::Storage::Entity::SignedIdentifier instances -
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/jj159102
Returns nil on success
347 348 349 350 351 352 353 354 355 356 357 |
# File 'table/lib/azure/storage/table/table_service.rb', line 347 def set_table_acl(table_name, = {}) query = new_query() query[Azure::Storage::Common::QueryStringConstants::COMP] = Azure::Storage::Common::QueryStringConstants::ACL uri = generate_uri(table_name, query) body = nil body = Serialization.signed_identifiers_to_xml [:signed_identifiers] if [:signed_identifiers] && [:signed_identifiers].length > 0 call(:put, uri, body, { "x-ms-version" => "2012-02-12" }, ) nil end |
#table_uri(name, query = {}, options = {}) ⇒ Object
687 688 689 690 |
# File 'table/lib/azure/storage/table/table_service.rb', line 687 def table_uri(name, query = {}, = {}) return name if name.kind_of? ::URI generate_uri("Tables('#{name}')", query, ) end |
#update_entity(table_name, entity_values, options = {}) ⇒ Object
Public: Updates an existing entity in a table. The Update Entity operation replaces the entire entity and can be used to remove properties.
Attributes
-
table_name
- String. The table name -
entity_values
- Hash. A hash of the name/value pairs for the entity. -
options
- Hash. Optional parameters.
Options
Accepted key/value pairs in options parameter are:
-
:if_match
- String. A matching condition which is required for update (optional, Default=“*”) -
:create_if_not_exists
- Boolean. If true, and partition_key and row_key do not reference and existing entity,that entity will be inserted. If false, the operation will fail. (optional, Default=false)
-
:timeout
- Integer. A timeout in seconds. -
:request_id
- String. Provides a client-generated, opaque value with a 1 KB character limit that is recordedin the analytics logs when storage analytics logging is enabled.
See msdn.microsoft.com/en-us/library/azure/dd179427
Returns the ETag for the entity on success
477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 |
# File 'table/lib/azure/storage/table/table_service.rb', line 477 def update_entity(table_name, entity_values, = {}) if_match = "*" if_match = [:if_match] if [:if_match] uri = entities_uri(table_name, entity_values[:PartitionKey] || entity_values["PartitionKey"], entity_values[:RowKey] || entity_values["RowKey"], new_query()) headers = {} headers["If-Match"] = if_match || "*" unless [:create_if_not_exists] body = Serialization.hash_to_json(entity_values) response = call(:put, uri, body, headers, ) response.headers["etag"] rescue => e raise_with_response(e, response) end |