|  | 
Chilkat  HOME  Android™  AutoIt  C  C#  C++  Chilkat2-Python  CkPython  Classic ASP  DataFlex  Delphi DLL  Go  Java  Node.js  Objective-C  PHP Extension  Perl  PowerBuilder  PowerShell  PureBasic  Ruby  SQL Server  Swift  Tcl  Unicode C  Unicode C++  VB.NET  VBScript  Visual Basic 6.0  Visual FoxPro  Xojo Plugin
| (Tcl) Azure Storage: Lease ContainerAzure Storage Blob Service REST API: Sample code to establishes a lock on a container for delete operations. The lock duration can be 15 to 60 seconds, or can be infinite. 
 load ./chilkat.dll # Azure Blob Service Example: Lease Container # See also: https://msdn.microsoft.com/en-us/library/azure/jj159103.aspx # This example requires the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. set rest [new_CkRest] # Connect to the Azure Storage Blob Service set bTls 1 set port 443 set bAutoReconnect 1 # In this example, the storage account name is "chilkat". set success [CkRest_Connect $rest "chilkat.blob.core.windows.net" $port $bTls $bAutoReconnect] if {$success != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest exit } # Provide Azure Cloud credentials for the REST call. set azAuth [new_CkAuthAzureStorage] CkAuthAzureStorage_put_AccessKey $azAuth "AZURE_ACCESS_KEY" # The account name used here should match the 1st part of the domain passed in the call to Connect (above). CkAuthAzureStorage_put_Account $azAuth "chilkat" CkAuthAzureStorage_put_Scheme $azAuth "SharedKey" CkAuthAzureStorage_put_Service $azAuth "Blob" # This causes the "x-ms-version: 2021-08-06" header to be automatically added. CkAuthAzureStorage_put_XMsVersion $azAuth "2021-08-06" set success [CkRest_SetAuthAzureStorage $rest $azAuth] # Note: The application does not need to explicitly set the following # headers: x-ms-date, Authorization. These headers # are automatically set by Chilkat. # The lease ID needs to be a GUID. (UUID and GUID are synonymous) set crypt [new_CkCrypt2] set guid [CkCrypt2_generateUuid $crypt] puts "Lease ID: $guid" set success [CkRest_AddHeader $rest "x-ms-lease-id" $guid] # The action can be "acquire", "renew", "change", "release", or "break". # See https://msdn.microsoft.com/en-us/library/azure/jj159103.aspx set success [CkRest_AddHeader $rest "x-ms-lease-action" "acquire"] # The lease duration.. set success [CkRest_AddHeader $rest "x-ms-lease-duration" "15"] # In this example, we are acquiring a lease for the container named "mycontainer". set responseStr [CkRest_fullRequestNoBody $rest "PUT" "/mycontainer?restype=container&comp=lease"] if {[CkRest_get_LastMethodSuccess $rest] != 1} then { puts [CkRest_lastErrorText $rest] delete_CkRest $rest delete_CkAuthAzureStorage $azAuth delete_CkCrypt2 $crypt exit } # When successful, the Azure Storage service will respond with a 200, 201, or 202 response status code, # with no response body. # The status code depends on the operation: # Acquire: A successful operation returns status code 201 (Created). # Renew: A successful operation returns status code 200 (OK). # Change: A successful operation returns status code 200 (OK). # Release: A successful operation returns status code 200 (OK). # Break: A successful operation returns status code 202 (Accepted). if {expr [[CkRest_get_ResponseStatusCode $rest] < 200] || [[CkRest_get_ResponseStatusCode $rest] > 202]} then { # Examine the request/response to see what happened. puts "response status code = [CkRest_get_ResponseStatusCode $rest]" puts "response status text = [CkRest_responseStatusText $rest]" puts "response header: [CkRest_responseHeader $rest]" puts "response body (if any): $responseStr" puts "---" puts "LastRequestStartLine: [CkRest_lastRequestStartLine $rest]" puts "LastRequestHeader: [CkRest_lastRequestHeader $rest]" delete_CkRest $rest delete_CkAuthAzureStorage $azAuth delete_CkCrypt2 $crypt exit } puts "Success: Lease acquired." delete_CkRest $rest delete_CkAuthAzureStorage $azAuth delete_CkCrypt2 $crypt | ||||
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.