コード例 #1
0
    def test_sign_request(self):
        accss_plcy = AccessPolicy()
        accss_plcy.start = '2011-10-11'
        accss_plcy.expiry = '2011-10-12'
        accss_plcy.permission = 'r'
        sap = SharedAccessPolicy(accss_plcy)
        qry_str = self.sas.generate_signed_query_string('images/pic1.png',
                                                        RESOURCE_BLOB,
                                                        sap)

        permission = Permission()
        permission.path = '/images/pic1.png'
        permission.query_string = qry_str
        self.sas.permission_set = [permission]

        web_rsrc = WebResource()
        web_rsrc.properties[SIGNED_RESOURCE_TYPE] = RESOURCE_BLOB
        web_rsrc.properties[SHARED_ACCESS_PERMISSION] = 'r'
        web_rsrc.path = '/images/pic1.png?comp=metadata'
        web_rsrc.request_url = '/images/pic1.png?comp=metadata'

        web_rsrc = self.sas.sign_request(web_rsrc)

        self.assertEqual(web_rsrc.request_url,
                         '/images/pic1.png?comp=metadata&' +
                         self.sas._convert_query_string(qry_str))
コード例 #2
0
    def test_sign_request(self):
        accss_plcy = AccessPolicy()
        accss_plcy.start = '2011-10-11'
        accss_plcy.expiry = '2011-10-12'
        accss_plcy.permission = 'r'
        sap = SharedAccessPolicy(accss_plcy)
        qry_str = self.sas.generate_signed_query_string('images/pic1.png', 
                                                   RESOURCE_BLOB, 
                                                   sap)
        
        permission = Permission()
        permission.path = '/images/pic1.png'
        permission.query_string = qry_str
        self.sas.permission_set = [permission]

        web_rsrc = WebResource()
        web_rsrc.properties[SIGNED_RESOURCE_TYPE] = RESOURCE_BLOB
        web_rsrc.properties[SHARED_ACCESS_PERMISSION] = 'r'
        web_rsrc.path = '/images/pic1.png?comp=metadata'
        web_rsrc.request_url = '/images/pic1.png?comp=metadata'

        web_rsrc = self.sas.sign_request(web_rsrc)

        self.assertEqual(web_rsrc.request_url, 
                         '/images/pic1.png?comp=metadata&' + 
                         self.sas._convert_query_string(qry_str))
コード例 #3
0
ファイル: azure_storage.py プロジェクト: avinava07/codalab
def make_blob_sas_url(account_name,
                      account_key,
                      container_name,
                      blob_name,
                      duration=16):
    """
    Generate a Blob SAS URL to allow a client to upload a file.

    account_name: Storage account name.
    account_key: Storage account key.
    container_name: Storage container.
    blob_name: Blob name.
    duration: A timedelta representing duration until SAS expiration.
       SAS start date will be utcnow() minus one minute. Expiry date
       is start date plus duration.

    Returns the SAS URL.
    """
    sas = SharedAccessSignature(account_name, account_key)
    resource_path = '%s/%s' % (container_name, blob_name)
    date_format = "%Y-%m-%dT%H:%M:%SZ"
    start = datetime.datetime.utcnow() - datetime.timedelta(minutes=5)
    expiry = start + datetime.timedelta(minutes=duration)
    sap = SharedAccessPolicy(AccessPolicy(
            start.strftime(date_format), 
            expiry.strftime(date_format),
            'w'))
    signed_query = sas.generate_signed_query_string(resource_path, RESOURCE_BLOB, sap)
    sas.permission_set = [Permission('/' + resource_path, signed_query)]

    res = WebResource()
    res.properties[SIGNED_RESOURCE_TYPE] = RESOURCE_BLOB
    res.properties[SHARED_ACCESS_PERMISSION] = 'w'
    res.path = '/{0}'.format(resource_path)
    res.request_url = 'https://{0}.blob.core.windows.net/{1}/{2}'.format(account_name, container_name, blob_name)
    res = sas.sign_request(res)
    return res.request_url
コード例 #4
0
def make_blob_sas_url(account_name,
                      account_key,
                      container_name,
                      blob_name,
                      permission='w',
                      duration=16):
    """
    Generate a Blob SAS URL to allow a client to upload a file.

    account_name: Storage account name.
    account_key: Storage account key.
    container_name: Storage container.
    blob_name: Blob name.
    duration: A timedelta representing duration until SAS expiration.
       SAS start date will be utcnow() minus one minute. Expiry date
       is start date plus duration.

    Returns the SAS URL.
    """
    sas = SharedAccessSignature(account_name, account_key)
    resource_path = '%s/%s' % (container_name, blob_name)
    date_format = "%Y-%m-%dT%H:%M:%SZ"
    start = datetime.datetime.utcnow() - datetime.timedelta(minutes=5)
    expiry = start + datetime.timedelta(minutes=duration)
    sap = SharedAccessPolicy(
        AccessPolicy(start.strftime(date_format), expiry.strftime(date_format),
                     permission))
    signed_query = sas.generate_signed_query_string(resource_path,
                                                    RESOURCE_BLOB, sap)
    sas.permission_set = [Permission('/' + resource_path, signed_query)]

    res = WebResource()
    res.properties[SIGNED_RESOURCE_TYPE] = RESOURCE_BLOB
    res.properties[SHARED_ACCESS_PERMISSION] = permission
    res.path = '/{0}'.format(resource_path)
    res.request_url = 'https://{0}.blob.core.windows.net/{1}/{2}'.format(
        account_name, container_name, blob_name)
    res = sas.sign_request(res)
    return res.request_url