def create_queue(self, name): req = RequestWithMethod("PUT", "%s/%s" % (self.get_base_url(), name)) req.add_header("Content-Length", "0") self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def create_container(self, container_name, is_public = False): req = RequestWithMethod("PUT", "%s/%s" % (self.get_base_url(), container_name)) req.add_header("Content-Length", "0") if is_public: req.add_header(PREFIX_PROPERTIES + "publicaccess", "true") self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def put_blob(self, container_name, blob_name, data, content_type = None): req = RequestWithMethod("PUT", "%s/%s/%s" % (self.get_base_url(), container_name, blob_name), data=data) req.add_header("Content-Length", "%d" % len(data)) if content_type is not None: req.add_header("Content-Type", content_type) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def set_metadata(self, container_name, blob_name, metadata): req = RequestWithMethod("PUT", "%s/%s/%s?comp=metadata" % (self.get_base_url(), container_name, blob_name)) for name, value in metadata.iteritems(): req.add_header("x-ms-meta-" + name, value) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def put_message(self, queue_name, payload): data = "<QueueMessage><MessageText>%s</MessageText></QueueMessage>" % base64.encodestring(payload) req = RequestWithMethod("POST", "%s/%s/messages" % (self.get_base_url(), queue_name), data=data) req.add_header("Content-Type", "application/xml") req.add_header("Content-Length", len(data)) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def set_metadata(self, container_name, blob_name, metadata): req = RequestWithMethod( "PUT", "%s/%s/%s?comp=metadata" % (self.get_base_url(), container_name, blob_name)) for name, value in metadata.iteritems(): req.add_header("x-ms-meta-" + name, value) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def delete_queue(self, name): req = RequestWithMethod("DELETE", "%s/%s" % (self.get_base_url(), name)) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def delete_message(self, queue_name, message): id = message.id pop_receipt = message.pop_receipt req = RequestWithMethod( "DELETE", "%s/%s/messages/%s?popreceipt=%s" % (self.get_base_url(), queue_name, id, pop_receipt)) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def create_table(self, name): data = """<?xml version="1.0" encoding="utf-8" standalone="yes"?> <entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom"> <title /> <updated>%s</updated> <author> <name /> </author> <id /> <content type="application/xml"> <m:properties> <d:TableName>%s</d:TableName> </m:properties> </content> </entry>""" % (time.strftime("%Y-%m-%dT%H:%M:%S.000Z", time.gmtime()), name) req = RequestWithMethod("POST", "%s/Tables" % self.get_base_url(), data=data) req.add_header("Content-Length", "%d" % len(data)) req.add_header("Content-Type", "application/atom+xml") self._credentials.sign_table_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def create_container(self, container_name, is_public=False): req = RequestWithMethod( "PUT", "%s/%s" % (self.get_base_url(), container_name)) req.add_header("Content-Length", "0") if is_public: req.add_header(PREFIX_PROPERTIES + "publicaccess", "true") self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def put_blob(self, container_name, blob_name, data, content_type=None, metadata={}): req = RequestWithMethod( "PUT", "%s/%s/%s" % (self.get_base_url(), container_name, blob_name), data=data) req.add_header("Content-Length", "%d" % len(data)) if content_type is not None: req.add_header("Content-Type", content_type) for name, value in metadata.iteritems(): req.add_header("x-ms-meta-" + name, value) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def put_message(self, queue_name, payload): data = "<QueueMessage><MessageText>%s</MessageText></QueueMessage>" % base64.encodestring( payload) req = RequestWithMethod("POST", "%s/%s/messages" % (self.get_base_url(), queue_name), data=data) req.add_header("Content-Type", "application/xml") req.add_header("Content-Length", len(data)) self._credentials.sign_request(req) try: response = urlopen(req) return response.code except URLError, e: return e.code
def delete_blob(self, container_name, blob_name): req = RequestWithMethod( "DELETE", "%s/%s/%s" % (self.get_base_url(), container_name, blob_name)) self._credentials.sign_request(req) return urlopen(req).read()