本文整理汇总了Python中azure.storage.blob.BlobService.create_container方法的典型用法代码示例。如果您正苦于以下问题:Python BlobService.create_container方法的具体用法?Python BlobService.create_container怎么用?Python BlobService.create_container使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类azure.storage.blob.BlobService
的用法示例。
在下文中一共展示了BlobService.create_container方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: __create_blob_container
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def __create_blob_container(self, storage_acc_name):
sms = self.__get_service_mgmt_object()
# Retrieve the primary key of your storage account
# Maybe the secondary key works too?
storage_acc_key = None
acounts = sms.list_storage_accounts()
for account in acounts:
if account.service_name == storage_acc_name:
storageServiceObj = sms.get_storage_account_keys(account.service_name)
storage_acc_key = storageServiceObj.storage_service_keys.primary
# Create a container
blob_service = BlobService(account_name=storage_acc_name,
account_key=storage_acc_key)
container_name = namesgenerator.get_random_name()
container_name += "container"
blob_service.create_container(container_name)
# This is the url to the container we just created
container_url_template = "http://{}.blob.core.windows.net/{}"
container_url = container_url_template.format(storage_acc_name, container_name)
#print "Created blob container with URL ",container_url
return container_url
示例2: StateThread
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def StateThread():
global initializeNow
global isPrimary
while 1:
try:
currentHost = socket.gethostname()
blob_service = BlobService(account_name=azureStorageAccountName, account_key=azureStorageAccountKey)
if (initializeNow == True):
initializeNow = False
print("Initializing '" + currentHost + "' as primary.")
newContents = currentHost
blob_service.create_container(container)
blob_service.put_block_blob_from_text(container, blob, newContents)
while 1:
print("Downloading current state.")
currentContents = blob_service.get_blob_to_text(container, blob)
if (currentContents==currentHost):
isPrimary = True
print("isPrimary = True")
# we have now received status, if second thread NOT running, start
if (t2.isAlive() == False):
t2.start()
elif (currentContents!=currentHost and currentContents.count>0):
isPrimary = False
print("isPrimary = False")
# we have now received status, if second thread NOT running, start
if (t2.isAlive() == False):
t2.start()
sleep(.1)
except Exception as e:
print ("Error in MainStateThread: " + e)
开发者ID:mattmcloughlin,项目名称:AzureCustomLoadBalancerProbe,代码行数:35,代码来源:LoadBalancerCustomProbeForPrimaryBackup.py
示例3: _createExternalStore
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def _createExternalStore():
from toil.jobStores.azureJobStore import _fetchAzureAccountKey
blobService = BlobService(account_key=_fetchAzureAccountKey(AzureJobStoreTest.accountName),
account_name=AzureJobStoreTest.accountName)
containerName = 'import-export-test-%s' % uuid.uuid4()
blobService.create_container(containerName)
return containerName
示例4: _createExternalStore
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def _createExternalStore(self):
from toil.jobStores.azureJobStore import _fetchAzureAccountKey
from azure.storage.blob import BlobService
blobService = BlobService(account_key=_fetchAzureAccountKey(self.accountName),
account_name=self.accountName)
containerName = 'import-export-test-%s' % uuid.uuid4()
blobService.create_container(containerName)
return containerName
示例5: AzureStorage
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
class AzureStorage(Storage):
account_name = settings.AZURE_ACCOUNT_NAME
account_key = settings.AZURE_ACCOUNT_KEY
azure_container = settings.AZURE_CONTAINER
def __init__(self, *args, **kwargs):
super(AzureStorage, self).__init__(*args, **kwargs)
self._connection = None
@property
def connection(self):
if self._connection is None:
# Create connection
self._connection = BlobService(self.account_name, self.account_key)
# Create container if needed
containers = [c for c in self._connection.list_containers(prefix=self.azure_container) if c.name == self.azure_container ]
if len(containers) == 0:
self._connection.create_container(self.azure_container, {'origin': 'created by Django web app'}, fail_on_exist=True)
return self._connection
def _open(self, name, mode="rb"):
stream = SimpleUploadedFile(name, None)
self.connection.get_blob_to_file(self.azure_container, name, stream)
stream.seek(0)
return stream
def exists(self, name):
try:
self.connection.get_blob_properties(self.azure_container, name)
except AzureMissingResourceHttpError:
return False
else:
return True
def delete(self, name):
self.connection.delete_blob(self.azure_container, name)
def size(self, name):
properties = self.connection.get_blob_properties(self.azure_container, name)
return properties["content-length"]
def _save(self, name, content):
self.connection.put_block_blob_from_file(self.azure_container, name, content)
return name
def url(self, name):
ap = AccessPolicy(expiry=(timezone.datetime.utcnow() + timezone.timedelta(seconds=600)).strftime('%Y-%m-%dT%H:%M:%SZ'), \
start=(timezone.datetime.utcnow() + timezone.timedelta(seconds=-600)).strftime('%Y-%m-%dT%H:%M:%SZ'), \
permission='r')
sap = SharedAccessPolicy(ap)
sas = SharedAccessSignature(self.account_name, self.account_key)
url = sas.generate_signed_query_string(path=self.azure_container + '/' + name, resource_type='b', shared_access_policy=sap)
return self.connection.make_blob_url(self.azure_container, name) + "?" + url
示例6: azure_storage_writer
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
class azure_storage_writer (object):
"""storage operation wrapper, desiged for writing logs to storage"""
def __init__(self, account_name, account_key, container, prefix):
self._blob = BlobService(account_name=account_name, account_key=account_key)
self._cur_path = None
self._buf = io.StringIO()
self._prefix = prefix
self._container = container
self._blob.create_container(container)
self._logger = create_timed_rotating_log()
def write_log(self, entity):
path = self._get_path(entity[0])
if (self._cur_path == None):
self._cur_path = path
elif(self._cur_path != path):
self._dump_buf_to_storage()
self._buf.close()
self._buf = io.StringIO()
self._cur_path = path
self._buf.write(entity[1])
self._buf.write("\n")
def close(self):
if (self._cur_path != None):
self._dump_buf_to_storage()
self._buf.close()
def _dump_buf_to_storage(self):
self._logger.info("Begin dump to azure blob")
loop = 0;
while True:
try:
self._blob.put_block_blob_from_text(self._container,self._cur_path, self._buf.getvalue())
break
except AzureHttpError as e:
self._logger.warn("Hit an AzureHttpError " + str(e))
self._logger.warn("Retry times: {0}".format(loop))
loop = loop + 1
if loop >= 3:
raise e
except Exception as e:
self._logger.warn("Hit an Exception " + str(e))
raise e
self._logger.info("Dump to azure blob succeeded.")
def _get_path(self, timestamp):
#timestamp = int(timestamp)
d = datetime.fromtimestamp(int(timestamp))
part = str.format("logs-part-{}.txt", d.minute // 5)
path_str = d.strftime('%Y-%m-%d/%H')
return str.format("{}/{}/{}", self._prefix, path_str, part)
示例7: _BlobStorageFileHandler
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
class _BlobStorageFileHandler(object):
def __init__(self,
account_name=None,
account_key=None,
protocol='https',
container='logs',
zip_compression=False,
max_connections=1,
max_retries=5,
retry_wait=1.0):
self.service = BlobService(account_name, account_key, protocol)
self.container_created = False
hostname = gethostname()
self.meta = {'hostname': hostname.replace('_', '-'),
'process': os.getpid()}
self.container = (container % self.meta).lower()
self.meta['hostname'] = hostname
self.zip_compression = zip_compression
self.max_connections = max_connections
self.max_retries = max_retries
self.retry_wait = retry_wait
def put_file_into_storage(self, dirName, fileName):
"""
Ship the outdated log file to the specified blob container.
"""
if not self.container_created:
self.service.create_container(self.container)
self.container_created = True
fd, tmpfile_path = None, ''
try:
file_path = os.path.join(dirName, fileName)
if self.zip_compression:
suffix, content_type = '.zip', 'application/zip'
fd, tmpfile_path = mkstemp(suffix=suffix)
with os.fdopen(fd, 'wb') as f:
with ZipFile(f, 'w', ZIP_DEFLATED) as z:
z.write(file_path, arcname=fileName)
file_path = tmpfile_path
else:
suffix, content_type = '', 'text/plain'
self.service.put_block_blob_from_path(self.container,
fileName + suffix,
file_path,
x_ms_blob_content_type=content_type,
max_connections=self.max_connections,
max_retries=self.max_retries,
retry_wait=self.retry_wait)
finally:
if self.zip_compression and fd:
os.remove(tmpfile_path)
示例8: prepare_storage
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def prepare_storage(settings):
default_storage_account_name = settings["DEFAULT_STORAGE_ACCOUNT_NAME"]
storage_access_key = settings["STORAGE_ACCESS_KEY"]
blob_service = BlobService(default_storage_account_name, storage_access_key)
blob_service.create_container('bosh')
blob_service.create_container(
container_name='stemcell',
x_ms_blob_public_access='blob'
)
# Prepare the table for storing meta datas of storage account and stemcells
table_service = TableService(default_storage_account_name, storage_access_key)
table_service.create_table('stemcells')
示例9: connect
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def connect(config=False):
import lib.misc as misc
from azure.storage.blob import BlobService
global blob_service, container
# Connect to the cloud service.
if not config: config = misc.config['_private']
container = 'streams'
if not 'azure' in config:
return None, None
if not blob_service:
blob_service = BlobService(config['azure']['storage_account_name'], config['azure']['primary_access_key'])
blob_service.create_container(container, x_ms_blob_public_access='container')
return blob_service, container
示例10: __get_available_storage_account_and_container
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def __get_available_storage_account_and_container(self, hackathon_id):
"""
Get available storage account and container
:param hackathon_id: the id of hackathon
:type hackathon_id: integer
:return: if there is available storage account and container, then return (True, storage
account name, container name). Otherwise, return (False, None, None)
:rtype: 3-element tuple: (bool, str|unicode, str|unicode)
"""
container_name = self.util.safe_get_config('dockerhostserver.azure.container', 'dockerhostprivatecontainer')
sms = self.__get_sms_object(hackathon_id)
if sms is None:
self.log.error('Something wrong with Azure account of Hackathon:%d' % hackathon_id)
return False, None, None
storage_accounts = sms.list_storage_accounts()
# check storage account one by one, return True once find a qualified one
for storage in storage_accounts.storage_services:
try:
storage_response = sms.get_storage_account_keys(storage.service_name)
except Exception as e:
self.log.error('Encounter an error when checking storage_account:%s ' % storage.service_name)
self.log.error(e)
continue
blob_service = BlobService(account_name=storage.service_name,
account_key=storage_response.storage_service_keys.primary,
host_base=self.util.safe_get_config('dockerhostserver.storage.host_base',
'.blob.core.chinacloudapi.cn'))
try:
blob_service.get_container_metadata(container_name)
return True, storage.service_name, container_name
except Exception as e:
if e.message != AzureApiExceptionMessage.CONTAINER_NOT_FOUND:
self.log.error('Encounter an error when checking container:%s ' % container_name)
self.log.error(e)
continue
try:
blob_service.create_container(container_name=container_name, x_ms_blob_public_access='container')
return True, storage.service_name, container_name
except Exception as e:
self.log.error('Encounter an error when creating container:%s ' % container_name)
self.log.error(e)
return False, None, None
示例11: save_file
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
file.seek(0)
path = save_file(file, filename_md5)
photo = Photo(creator_id = user.id, path = path)
db.session.add(photo)
db.session.commit()
return "{0}".format(photo.id)
@app.route("/api/<session_key>/photo/<int:photo_id>", methods = ['GET'])
def photo_get(session_key, photo_id):
session = Session.query.filter_by(session_key = session_key).first()
if session is not None:
user = User.query.filter_by(id = session.user_id).first()
else:
return "Error: Not Logged In."
photo = Photo.query.filter_by(id = photo_id).first()
if photo is not None:
return get_file(photo.path)
else:
return "Error: Photo not found."
if __name__ == "__main__":
if len(sys.argv) > 1 and sys.argv[1] == 'create_db':
db.create_all()
elif len(sys.argv) > 1 and sys.argv[1] == 'create_storage':
blob_service.create_container('photos')
else:
app.run(host = '0.0.0.0', port=5000, debug = True)
示例12: main
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
def main():
service = BlobService(settings.STORAGE_ACCOUNT_NAME, settings.STORAGE_ACCOUNT_KEY)
service.create_container(CONTAINER_NAME)
process(service, LOCAL_BLOCK_BLOB_FILES, CONNECTION_COUNTS, is_page_blob=False)
process(service, LOCAL_PAGE_BLOB_FILES, CONNECTION_COUNTS, is_page_blob=True)
示例13: BlobService
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
from azure.storage.blob import BlobService
from mimetypes import guess_type
ACCOUNT = 'msgtest'
CONTAINER = 'telegram'
blob_service = BlobService(account_name=ACCOUNT, account_key='sJQjZXgR/IUH4o4/CmbXue3DGxRgwkzy0SILxJMSgmd26lFCXUdqrtwwjmEPU9CrcIvoJG3yv6L0R55o9BqnXw==')
blob_service.create_container(CONTAINER, x_ms_blob_public_access='container')
def putblob(fileid, filename):
global ACCOUNT
blob_service.put_block_blob_from_path(
CONTAINER,
fileid,
filename,
x_ms_blob_content_type=guess_type(filename)
)
return 'https://%s.blob.core.windows.net/%s/%s' %(ACCOUNT, CONTAINER, fileid)
putblob('quotes.pkl', 'quotes.pkl')
blobs = []
marker = None
while True:
batch = blob_service.list_blobs(CONTAINER, marker=marker)
blobs.extend(batch)
if not batch.next_marker:
示例14: AzureJobStore
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
#.........这里部分代码省略.........
# A dummy job ID under which all shared files are stored.
sharedFileJobID = uuid.UUID('891f7db6-e4d9-4221-a58e-ab6cc4395f94')
def _newFileID(self, sharedFileName=None):
if sharedFileName is None:
ret = str(uuid.uuid4())
else:
ret = str(uuid.uuid5(self.sharedFileJobID, str(sharedFileName)))
return ret.replace('-', '_')
def _associateFileWithJob(self, jobStoreFileID, jobStoreID=None):
if jobStoreID is not None:
self.jobFileIDs.insert_entity(entity={'PartitionKey': jobStoreID,
'RowKey': jobStoreFileID})
def _dissociateFileFromJob(self, jobStoreFileID):
entities = self.jobFileIDs.query_entities(filter="RowKey eq '%s'" % jobStoreFileID)
if entities:
assert len(entities) == 1
jobStoreID = entities[0].PartitionKey
self.jobFileIDs.delete_entity(partition_key=jobStoreID, row_key=jobStoreFileID)
def _getOrCreateTable(self, tableName):
# This will not fail if the table already exists.
for attempt in retry_azure():
with attempt:
self.tableService.create_table(tableName)
return AzureTable(self.tableService, tableName)
def _getOrCreateBlobContainer(self, containerName):
for attempt in retry_azure():
with attempt:
self.blobService.create_container(containerName)
return AzureBlobContainer(self.blobService, containerName)
def _sanitizeTableName(self, tableName):
"""
Azure table names must start with a letter and be alphanumeric.
This will never cause a collision if uuids are used, but
otherwise may not be safe.
"""
return 'a' + filter(lambda x: x.isalnum(), tableName)
# Maximum bytes that can be in any block of an Azure block blob
# https://github.com/Azure/azure-storage-python/blob/4c7666e05a9556c10154508335738ee44d7cb104/azure/storage/blob/blobservice.py#L106
_maxAzureBlockBytes = 4 * 1024 * 1024
@contextmanager
def _uploadStream(self, jobStoreFileID, container, checkForModification=False, encrypted=None):
"""
:param encrypted: True to enforce encryption (will raise exception unless key is set),
False to prevent encryption or None to encrypt if key is set.
"""
if checkForModification:
try:
expectedVersion = container.get_blob_properties(blob_name=jobStoreFileID)['etag']
except AzureMissingResourceHttpError:
expectedVersion = None
if encrypted is None:
encrypted = self.keyPath is not None
elif encrypted:
if self.keyPath is None:
raise RuntimeError('Encryption requested but no key was provided')
示例15: AzureFS
# 需要导入模块: from azure.storage.blob import BlobService [as 别名]
# 或者: from azure.storage.blob.BlobService import create_container [as 别名]
#.........这里部分代码省略.........
return None
except AzureException as e:
log.error("get_file: exception while querying remote for %s: %s",
path, repr(e))
self._get_file_noent[path] = time.time()
return None
def getattr(self, path, fh=None):
log.debug("getattr: path=%s", path)
d, f = self._parse_path(path)
if f is None:
return self._get_dir(d)['stat']
else:
file_obj = self._get_file(path)
if file_obj:
return file_obj
log.warning("getattr: no such file: %s", path)
raise FuseOSError(errno.ENOENT)
def mkdir(self, path, mode):
if path.count('/') <= 1: # create on root
name = path[1:]
if not 3 <= len(name) <= 63:
log.error("Container names can be 3 through 63 chars long")
raise FuseOSError(errno.ENAMETOOLONG)
if not re.match(RE_CONTAINER_NAME, name):
log.error("Invalid container name: '%s'", name)
raise FuseOSError(errno.EACCES)
resp = self.blobs.create_container(name)
if resp:
self._rebuild_container_list()
log.info("CONTAINER %s CREATED", name)
else:
log.error("Invalid container name or container already exists")
raise FuseOSError(errno.EACCES)
else:
# TODO: Support 2nd+ level directory creation
raise FuseOSError(errno.ENOSYS)
def rmdir(self, path):
if path.count('/') == 1:
c_name = path[1:]
resp = self.blobs.delete_container(c_name)
if resp:
if path in self.containers:
del self.containers[path]
else:
raise FuseOSError(errno.EACCES)
else:
# TODO: Support 2nd+ level directories
raise FuseOSError(errno.ENOSYS)
def create(self, path, mode, fi=None):
node = make_stat(stat.S_IFREG | mode)
d, f = self._parse_path(path)
if not f:
log.error("Cannot create files on root level: /")
raise FuseOSError(errno.ENOSYS)