MCPcopy Create free account
hub / github.com/Azure/azure-storage-python / QueueSasSamples

Class QueueSasSamples

samples/queue/sas_usage.py:21–147  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

19
20
21class QueueSasSamples():
22 def __init__(self, account):
23 self.account = account
24
25 def run_all_samples(self):
26 self.service = self.account.create_queue_service()
27
28 self.queue_sas()
29 self.account_sas()
30
31 self.queue_acl()
32 self.sas_with_signed_identifiers()
33
34 def _create_queue(self, prefix='queue'):
35 queue_name = '{}{}'.format(prefix, str(uuid.uuid4()).replace('-', ''))
36 self.service.create_queue(queue_name)
37 return queue_name
38
39 def queue_sas(self):
40 queue_name = self._create_queue()
41 self.service.put_message(queue_name, u'message1')
42
43 # Access only to the messages in the given queue
44 # Process permissions to access messages
45 # Expires in an hour
46 token = self.service.generate_queue_shared_access_signature(
47 queue_name,
48 QueuePermissions.PROCESS,
49 datetime.utcnow() + timedelta(hours=1),
50 )
51
52 # Create a service and use the SAS
53 sas_service = QueueService(
54 account_name=self.account.account_name,
55 sas_token=token,
56 )
57
58 messages = sas_service.get_messages(queue_name)
59 for message in messages:
60 print(message.content) # message1
61
62 self.service.delete_queue(queue_name)
63
64 def account_sas(self):
65 queue_name = self._create_queue()
66 metadata = {'val1': 'foo', 'val2': 'blah'}
67 self.service.set_queue_metadata(queue_name, metadata=metadata)
68
69 # Access to read operations on the queues themselves
70 # Expires in an hour
71 token = self.service.generate_account_shared_access_signature(
72 ResourceTypes.CONTAINER,
73 AccountPermissions.READ,
74 datetime.utcnow() + timedelta(hours=1),
75 )
76
77 # Create a service and use the SAS
78 sas_service = QueueService(

Callers 1

Calls

no outgoing calls

Tested by 1