मैं पाइथन में चलाने के लिए एक स्क्रिप्ट के साथ मदद की तलाश में हूं जो एज़ूर में एक पूर्ववर्ती ब्लॉब तक पहुंच जाएगा, और इस ब्लॉब में होने वाली एक फ़ाइल के पूरे यूआरआई को वापस कर देगा।

मैंने कुछ चीजों की कोशिश की है लेकिन वे वर्तमान पुस्तकालयों के लिए बहुत पुराने हैं, या दौड़ते समय कनेक्ट नहीं होते हैं।

मैं एक नौसिखिया हूं, इसलिए इसके माध्यम से मुझे जगाने में कोई मदद की सराहना की जाएगी। यही वह है जो मैं कोशिश कर रहा था लेकिन मुझे यकीन है कि यह सब गलत है

import os, uuid
import azure.storage.blob

 self.blob_type = _BlobTypes.BlockBlob
    super(BlockBlobService, self).test(
    account_name=Account_Name,
    account_key='Account key',
    sas_token=None, 
    is_emulated=False, 
    protocol='https', 
    endpoint_suffix='core.windows.net', 
    custom_domain=None, 
    request_session=None, 
    connection_string=None, 
    socket_timeout=None, 
    token_credential=None)
get_block_list(
    ContainerName,
    BlobName,
    snapshot=None,
    block_list_type=None,
    lease_id=None,
    timeout=None)
0
Cecil Ware 22 अप्रैल 2020, 03:51

1 उत्तर

सबसे बढ़िया उत्तर

अपने विवरण से, मान लें कि आप ब्लॉब यूआरएल प्राप्त करना चाहते हैं और ब्लॉक सूची अनकमिटेड है। यदि हाँ, तो आप make_blob_url विधि लागू करने यह, यह ब्लॉब यूआरएल को पुनः प्राप्त कर सकता है यहां तक ​​​​कि ब्लॉब भी मौजूद नहीं है।

नीचे मेरा टेस्ट कोड है, सबसे पहले मैं ब्लॉक_लिस्ट बनाता हूं लेकिन अनकमिटेड, यह ब्लॉब यूआरएल प्राप्त कर सकता है, हालांकि आप ब्लॉब यूआरएल भी प्राप्त कर सकते हैं, यह यूआरएल पहुंच योग्य नहीं है क्योंकि ब्लॉब मौजूद नहीं है।

मैं azure-storage-blob==2.1.0 का उपयोग करता हूं।

from azure.storage.blob import BlockBlobService, PublicAccess,ContentSettings,BlockListType,BlobBlock
connect_str ='connection string'
block_blob_service = BlockBlobService(connection_string=connect_str)
containername='test'
blobname='abc-test.txt'

block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'AAA',block_id=1)
block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'BBB',block_id=2)
block_blob_service.put_block(container_name=containername,blob_name=blobname,block=b'CCC',block_id=3)

block_list=block_blob_service.get_block_list(container_name=containername,blob_name=blobname,block_list_type=BlockListType.All)
uncommitted = len(block_list.uncommitted_blocks) 
print(uncommitted)

exists=block_blob_service.exists(container_name=containername,blob_name=blobname)
print(exists)

blob_url=block_blob_service.make_blob_url(container_name=containername,blob_name=blobname)
print(blob_url)
block_list = [BlobBlock(id='1'), BlobBlock(id='2'), BlobBlock(id='3')]

block_blob_service.put_block_list(container_name=containername,blob_name=blobname,block_list=block_list)

exists=block_blob_service.exists(container_name=containername,blob_name=blobname)
print(exists)

blob_url=block_blob_service.make_blob_url(container_name=containername,blob_name=blobname)
print(blob_url)

enter image description here

आशा है कि आप यही चाहते हैं, अगर आपको अभी भी कोई अन्य समस्या है तो कृपया बेझिझक मुझे बताएं।

1
George Chen 22 अप्रैल 2020, 03:23