BT
x Por favor preencha a pesquisa do InfoQ !

Python possui um Wrapper para o Windows Azure

por Abel Avram , traduzido por Felipe Rodrigues em 14 Nov 2008 |

Sriram Krishnan, um Program Manager na Microsoft, escreveu um wrapper Phyton para o Windows Azure Data Storage. Python é uma das linguagens suportadas pelo Windows Azure.

De acordo com web site do Microsoft Azure, Python é uma das ferramentas e linguagens a serem suportadas pelo Windows Azure:

Windows Azure é uma plataforma aberta que suportará linguagens e ambientes Microsoft e não-Microsoft. Windows Azure é aberto a ferramentas e linguagens de terceiros, como Eclipse, Ruby, PHP e Python. ...

Milhões de desenvolvedores ao redor do mundo já usam o .NET Framework e o ambiente de desenvolvimento Visual Studio. Utilize estas mesmas habilidades para desenvolver aplicações cloud-enabled que podem ser escritas, testadas e instaladas direto do Visual Studio. Num futuro próximo, os desenvolvedores serão capazes de realizar deploy de aplicações Ruby on Rails e Python também.

Sriram escreveu um data storage wrapper em Python para o Windows Azure e publicou o código no GitHub. Armazenar/Retornar dados é feito como no seguinte exemplo:

conn = WAStorageConnection(DEVSTORE_HOST, DEVSTORE_ACCOUNT, DEVSTORE_SECRET_KEY)
    for (container_name,etag, last_modified ) in  conn.list_containers():
        print container_name
        print etag
        print last_modified
    conn.create_container("testcontainer", False)
    conn.put_blob("testcontainer","test","Hello World!" )
    print conn.get_blob("testcontainer", "test")

Signing-in é feito como no seguinte exemplo:

def _get_auth_header(self, http_method, path, data, headers):
   # As documented at http://msdn.microsoft.com/en-us/library/dd179428.aspx
   string_to_sign =""

#First element is the method
   string_to_sign += http_method + NEW_LINE

   #Second is the optional content MD5
   string_to_sign += NEW_LINE

   #content type - this should have been initialized atleast to a blank value
   if headers.has_key("content-type"):
    string_to_sign += headers["content-type"]
   string_to_sign += NEW_LINE

   # date - we don't need to add header here since the special date storage header
   # always exists in our implementation
   string_to_sign += NEW_LINE

   # Construct canonicalized storage headers.
   # TODO: Note that this doesn't implement parts of the spec -
   # combining header fields with same name,
   # unfolding long lines and trimming white spaces around the colon
   ms_headers =[header_key for header_key in headers.keys()
   if header_key.startswith(PREFIX_STORAGE_HEADER)]
   ms_headers.sort()
   for header_key in ms_headers:
    string_to_sign += "%s:%s%s" % (header_key, headers[header_key], NEW_LINE)

   # Add canonicalized resource
   string_to_sign += "/" + self.account_name + path
   utf8_string_to_sign = unicode(string_to_sign).encode("utf-8")
   hmac_digest = hmac.new(self.secret_key,
    utf8_string_to_sign,
    hashlib.sha256).digest()
   return base64.encodestring(hmac_digest).strip()

Parece que os planos da Microsoft para o Windows Azure supera a oferta do Google. Atualmente, o Google App Engine suporta apenas Phyton, mas há planos para suportar mais linguagens no futuro, de acordo com o Google.

Avalie esse artigo

Relevância
Estilo/Redação

Olá visitante

Você precisa cadastrar-se no InfoQ Brasil ou para enviar comentários. Há muitas vantagens em se cadastrar.

Obtenha o máximo da experiência do InfoQ Brasil.

Dê sua opinião

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão
Comentários da comunidade

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

HTML é permitido: a,b,br,blockquote,i,li,pre,u,ul,p

Receber mensagens dessa discussão

Dê sua opinião
Feedback geral
Bugs
Publicidade
Editorial
Marketing
InfoQ Brasil e todo o seu conteúdo: todos os direitos reservados. © 2006-2016 C4Media Inc.
Política de privacidade
BT

Percebemos que você está utilizando um bloqueador de propagandas

Nós entendemos porquê utilizar um bloqueador de propagandas. No entanto, nós precisamos da sua ajuda para manter o InfoQ gratuito. O InfoQ não compartilhará seus dados com nenhum terceiro sem que você autorize. Procuramos trabalhar com anúncios de empresas e produtos que sejam relevantes para nossos leitores. Por favor, considere adicionar o InfoQ como uma exceção no seu bloqueador de propagandas.