Händelser
31 mars 23 - 2 apr. 23
Den största utbildningshändelsen för Infrastruktur, Power BI och SQL. 31 mars – 2 april. Använd koden FABINSIDER för att spara 400 USD.
Anmäl dig i dagDen här webbläsaren stöds inte längre.
Uppgradera till Microsoft Edge och dra nytta av de senaste funktionerna och säkerhetsuppdateringarna, samt teknisk support.
Anteckning
Alternativet Skapa från grunden vägleder dig steg för steg genom processen att skapa ett nytt projekt, installera paket, skriva koden och köra en grundläggande konsolapp. Den här metoden rekommenderas om du vill förstå all information som ingår i skapandet av en app som ansluter till Azure Blob Storage. Om du föredrar att automatisera distributionsuppgifter och börja med ett slutfört projekt väljer du Börja med en mall.
Anteckning
Alternativet Börja med en mall använder Azure Developer CLI för att automatisera distributionsuppgifter och startar dig med ett slutfört projekt. Den här metoden rekommenderas om du vill utforska koden så snabbt som möjligt utan att gå igenom konfigurationsuppgifterna. Om du föredrar stegvisa instruktioner för att skapa appen väljer du Skapa från grunden.
Kom igång med Azure Blob Storage-klientbiblioteket för Python för att hantera blobar och containrar.
I den här artikeln följer du stegen för att installera paketet och prova exempelkod för grundläggande uppgifter.
I den här artikeln använder du Azure Developer CLI för att distribuera Azure-resurser och köra en slutförd konsolapp med bara några få kommandon.
Exempel på API-referensdokumentationEns källkodspaket | för bibliotek (PyPi) | |
Den här videon visar hur du börjar använda Azure Blob Storage-klientbiblioteket för Python.
Stegen i videon beskrivs också i följande avsnitt.
Det här avsnittet beskriver hur du förbereder ett projekt för att arbeta med Azure Blob Storage-klientbiblioteket för Python.
Skapa ett Python-program med namnet blob-quickstart.
I ett konsolfönster (till exempel PowerShell eller Bash) skapar du en ny katalog för projektet:
mkdir blob-quickstart
Växla till den nyligen skapade blob-snabbstartskatalogen :
cd blob-quickstart
Från projektkatalogen installerar du paket för Azure Blob Storage- och Azure Identity-klientbiblioteken med hjälp av pip install
kommandot . Azure-identitetspaketet behövs för lösenordslösa anslutningar till Azure-tjänster.
pip install azure-storage-blob azure-identity
Från projektkatalogen följer du stegen för att skapa appens grundläggande struktur:
import
instruktioner, skapa strukturen för programmet och inkludera grundläggande undantagshantering enligt nedan.import os, uuid
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
try:
print("Azure Blob Storage Python quickstart sample")
# Quickstart code goes here
except Exception as ex:
print('Exception:')
print(ex)
Med Azure Developer CLI installerat kan du skapa ett lagringskonto och köra exempelkoden med bara några få kommandon. Du kan köra projektet i din lokala utvecklingsmiljö eller i en DevContainer.
Från en tom katalog följer du de här stegen för att initiera mallen azd
, etablera Azure-resurser och komma igång med koden:
Klona snabbstartslagringsplatsens tillgångar från GitHub och initiera mallen lokalt:
azd init --template blob-storage-quickstart-python
Du uppmanas att ange följande information:
Logga in på Azure:
azd auth login
Etablera och distribuera resurserna till Azure:
azd up
Du uppmanas att ange följande information:
Distributionen kan ta några minuter att slutföra. Utdata från azd up
kommandot innehåller namnet på det nyligen skapade lagringskontot, som du behöver senare för att köra koden.
Nu distribueras resurserna till Azure och koden är nästan redo att köras. Följ de här stegen för att installera paket, uppdatera namnet på lagringskontot i koden och kör exempelkonsolappen:
pip install azure-storage-blob azure-identity
<storage-account-name>
platshållaren och ersätt den med det faktiska namnet på lagringskontot som skapades av azd up
kommandot. Spara ändringarna.python blob_quickstart.py
.Mer information om hur exempelkoden fungerar finns i Kodexempel.
När du är klar med att testa koden kan du läsa avsnittet Rensa resurser för att ta bort de resurser som skapades av azd up
kommandot.
Azure Blob Storage är optimerat för lagring av enorma mängder ostrukturerade data. Ostrukturerade data är data som inte följer en viss datamodell eller definition, till exempel text eller binära data. I blobblagringen finns tre typer av resurser:
Följande diagram visar relationen mellan dessa resurser:
Använd följande Python-klasser för att interagera med dessa resurser:
BlobServiceClient
klassen kan du ändra Azure Storage-resurser och blobcontainrar.ContainerClient
klassen kan du ändra Azure Storage-containrar och deras blobar.BlobClient
klassen kan du manipulera Azure Storage-blobar.De här exempelkodfragmenten visar hur du utför följande uppgifter med Azure Blob Storage-klientbiblioteket för Python:
Anteckning
Azure Developer CLI-mallen innehåller en fil med exempelkod som redan finns på plats. Följande exempel innehåller information om varje del av exempelkoden. Mallen implementerar den rekommenderade autentiseringsmetoden utan lösenord, enligt beskrivningen i avsnittet Autentisera till Azure . Metoden anslutningssträng visas som ett alternativ, men används inte i mallen och rekommenderas inte för produktionskod.
Programbegäranden till Azure Blob Storage måste vara auktoriserade. Att använda klassen DefaultAzureCredential
som tillhandahålls av Azure Identity-klientbiblioteket är den rekommenderade metoden för att implementera lösenordslösa anslutningar till Azure-tjänster i din kod, inklusive Blob Storage.
Du kan också auktorisera begäranden till Azure Blob Storage med hjälp av kontoåtkomstnyckeln. Den här metoden bör dock användas med försiktighet. Utvecklare måste vara noggranna för att aldrig exponera åtkomstnyckeln på en osäker plats. Alla som har åtkomstnyckeln kan auktorisera begäranden mot lagringskontot och har effektivt åtkomst till alla data. DefaultAzureCredential
ger bättre hanterings- och säkerhetsfördelar jämfört med kontonyckeln för att tillåta lösenordslös autentisering. Båda alternativen visas i följande exempel.
DefaultAzureCredential
stöder flera autentiseringsmetoder och avgör vilken metod som ska användas vid körning. Med den här metoden kan din app använda olika autentiseringsmetoder i olika miljöer (lokalt jämfört med produktion) utan att implementera miljöspecifik kod.
Den ordning och de platser där DefaultAzureCredential
autentiseringsuppgifterna söks finns i översikten över Azure Identity Library.
Din app kan till exempel autentisera med dina Inloggningsuppgifter för Azure CLI med när du utvecklar lokalt. Din app kan sedan använda en hanterad identitet när den har distribuerats till Azure. Inga kodändringar krävs för den här övergången.
När du utvecklar lokalt kontrollerar du att användarkontot som har åtkomst till blobdata har rätt behörigheter. Du behöver Storage Blob Data-deltagare för att läsa och skriva blobdata. Om du vill tilldela dig själv den här rollen måste du tilldelas rollen Administratör för användaråtkomst eller en annan roll som innehåller åtgärden Microsoft.Authorization/roleAssignments/write . Du kan tilldela Azure RBAC-roller till en användare med hjälp av Azure Portal, Azure CLI eller Azure PowerShell. Du kan lära dig mer om tillgängliga omfång för rolltilldelningar på översiktssidan för omfång .
I det här scenariot tilldelar du behörigheter till ditt användarkonto, begränsat till lagringskontot, för att följa principen om lägsta behörighet. Den här metoden ger användarna endast de minsta behörigheter som krävs och skapar säkrare produktionsmiljöer.
I följande exempel tilldelas rollen Storage Blob Data Contributor till ditt användarkonto, vilket ger både läs- och skrivåtkomst till blobdata i ditt lagringskonto.
Viktigt
I de flesta fall tar det en minut eller två för rolltilldelningen att spridas i Azure, men i sällsynta fall kan det ta upp till åtta minuter. Om du får autentiseringsfel när du först kör koden väntar du en stund och försöker igen.
Leta upp ditt lagringskonto i Azure Portal med hjälp av huvudsökfältet eller det vänstra navigeringsfältet.
På översiktssidan för lagringskontot väljer du Åtkomstkontroll (IAM) på den vänstra menyn.
På sidan Åtkomstkontroll (IAM) väljer du fliken Rolltilldelningar .
Välj + Lägg till på den översta menyn och sedan Lägg till rolltilldelning från den resulterande nedrullningsbara menyn.
Använd sökrutan för att filtrera resultatet till önskad roll. I det här exemplet söker du efter Storage Blob Data Contributor och väljer matchande resultat och väljer sedan Nästa.
Under Tilldela åtkomst till väljer du Användare, grupp eller tjänstens huvudnamn och sedan + Välj medlemmar.
I dialogrutan söker du efter ditt Microsoft Entra-användarnamn (vanligtvis din user@domain e-postadress) och väljer sedan Välj längst ned i dialogrutan.
Välj Granska + tilldela för att gå till den sista sidan och sedan Granska + tilldela igen för att slutföra processen.
Du kan auktorisera åtkomst till data i ditt lagringskonto med hjälp av följande steg:
Kontrollera att du är autentiserad med samma Microsoft Entra-konto som du tilldelade rollen till på ditt lagringskonto. Du kan autentisera via Azure CLI, Visual Studio Code eller Azure PowerShell.
Logga in på Azure via Azure CLI med följande kommando:
az login
Om du vill använda DefaultAzureCredential
kontrollerar du att azure-identity-paketet är installerat och att klassen importeras:
from azure.identity import DefaultAzureCredential
from azure.storage.blob import BlobServiceClient
Lägg till den här koden i try
blocket. När koden körs på din lokala arbetsstation DefaultAzureCredential
använder du utvecklarautentiseringsuppgifterna för det prioriterade verktyget som du är inloggad på för att autentisera till Azure. Exempel på dessa verktyg är Azure CLI eller Visual Studio Code.
account_url = "https://<storageaccountname>.blob.core.windows.net"
default_credential = DefaultAzureCredential()
# Create the BlobServiceClient object
blob_service_client = BlobServiceClient(account_url, credential=default_credential)
Se till att uppdatera lagringskontots namn i objektets BlobServiceClient
URI. Namnet på lagringskontot finns på översiktssidan för Azure Portal.
Anteckning
När du distribuerar till Azure kan samma kod användas för att auktorisera begäranden till Azure Storage från ett program som körs i Azure. Du måste dock aktivera hanterad identitet i din app i Azure. Konfigurera sedan ditt lagringskonto så att den hanterade identiteten kan ansluta. Detaljerade anvisningar om hur du konfigurerar den här anslutningen mellan Azure-tjänster finns i självstudiekursen Auth from Azure-hosted apps (Auth from Azure-hosted apps ).
Skapa en ny container i ditt lagringskonto genom att anropa create_container-metoden för blob_service_client
objektet. I det här exemplet lägger koden till ett GUID-värde i containernamnet för att säkerställa att det är unikt.
Lägg till den här koden i slutet av try
blocket:
# Create a unique name for the container
container_name = str(uuid.uuid4())
# Create the container
container_client = blob_service_client.create_container(container_name)
Mer information om hur du skapar en container och om du vill utforska fler kodexempel finns i Skapa en blobcontainer med Python.
Viktigt
Containernamn måste använda gemener. Mer information om namngivning av containrar och blobar finns i Namngivning och referens av containrar, blobar och metadata.
Ladda upp en blob till en container med hjälp av upload_blob. Exempelkoden skapar en textfil i den lokala datakatalogen som ska laddas upp till containern.
Lägg till den här koden i slutet av try
blocket:
# Create a local directory to hold blob data
local_path = "./data"
os.mkdir(local_path)
# Create a file in the local data directory to upload and download
local_file_name = str(uuid.uuid4()) + ".txt"
upload_file_path = os.path.join(local_path, local_file_name)
# Write text to the file
file = open(file=upload_file_path, mode='w')
file.write("Hello, World!")
file.close()
# Create a blob client using the local file name as the name for the blob
blob_client = blob_service_client.get_blob_client(container=container_name, blob=local_file_name)
print("\nUploading to Azure Storage as blob:\n\t" + local_file_name)
# Upload the created file
with open(file=upload_file_path, mode="rb") as data:
blob_client.upload_blob(data)
Mer information om hur du laddar upp blobar och om du vill utforska fler kodexempel finns i Ladda upp en blob med Python.
Visa en lista över blobarna i containern genom att anropa metoden list_blobs . I det här fallet har endast en blob lagts till i containern, så liståtgärden returnerar bara den bloben.
Lägg till den här koden i slutet av try
blocket:
print("\nListing blobs...")
# List the blobs in the container
blob_list = container_client.list_blobs()
for blob in blob_list:
print("\t" + blob.name)
Mer information om att visa blobar och utforska fler kodexempel finns i Lista blobar med Python.
Ladda ned den tidigare skapade bloben genom att anropa metoden download_blob . Exempelkoden lägger till suffixet "DOWNLOAD" i filnamnet så att du kan se båda filerna i det lokala filsystemet.
Lägg till den här koden i slutet av try
blocket:
# Download the blob to a local file
# Add 'DOWNLOAD' before the .txt extension so you can see both files in the data directory
download_file_path = os.path.join(local_path, str.replace(local_file_name ,'.txt', 'DOWNLOAD.txt'))
container_client = blob_service_client.get_container_client(container= container_name)
print("\nDownloading blob to \n\t" + download_file_path)
with open(file=download_file_path, mode="wb") as download_file:
download_file.write(container_client.download_blob(blob.name).readall())
Mer information om hur du laddar ned blobar och om du vill utforska fler kodexempel finns i Ladda ned en blob med Python.
Följande kod rensar de resurser som appen skapade genom att ta bort hela containern med hjälp av metoden delete_container . Du kan också ta bort de lokala filerna om du vill.
Appen pausar för användarindata genom att anropa input()
innan den tar bort bloben, containern och de lokala filerna. Kontrollera att resurserna har skapats korrekt innan de tas bort.
Lägg till den här koden i slutet av try
blocket:
# Clean up
print("\nPress the Enter key to begin clean up")
input()
print("Deleting blob container...")
container_client.delete_container()
print("Deleting the local source and downloaded files...")
os.remove(upload_file_path)
os.remove(download_file_path)
os.rmdir(local_path)
print("Done")
Mer information om hur du tar bort en container och om du vill utforska fler kodexempel finns i Ta bort och återställa en blobcontainer med Python.
Den här appen skapar en testfil i din lokala mapp och laddar upp den till Azure Blob Storage. I exemplet visas sedan blobarna i containern och filen laddas ned med ett nytt namn. Du kan jämföra gamla och nya filer.
Gå till katalogen som innehåller blob_quickstart.py-filen och kör sedan följande python
kommando för att köra appen:
python blob_quickstart.py
Utdata från appen liknar följande exempel (UUID-värden utelämnas för läsbarhet):
Azure Blob Storage Python quickstart sample
Uploading to Azure Storage as blob:
quickstartUUID.txt
Listing blobs...
quickstartUUID.txt
Downloading blob to
./data/quickstartUUIDDOWNLOAD.txt
Press the Enter key to begin clean up
Deleting blob container...
Deleting the local source and downloaded files...
Done
Innan du påbörjar rensningsprocessen kontrollerar du datamappen för de två filerna. Du kan jämföra dem och observera att de är identiska.
När du har verifierat filerna och testat klart trycker du på Retur för att ta bort testfilerna tillsammans med containern som du skapade i lagringskontot. Du kan också använda Azure CLI för att ta bort resurser.
När du är klar med snabbstarten kan du rensa de resurser som du skapade genom att köra följande kommando:
azd down
Du uppmanas att bekräfta borttagningen av resurserna. Ange y
för att bekräfta.
Händelser
31 mars 23 - 2 apr. 23
Den största utbildningshändelsen för Infrastruktur, Power BI och SQL. 31 mars – 2 april. Använd koden FABINSIDER för att spara 400 USD.
Anmäl dig i dagUtbildning
Modul
Arbeta med Azure Blob Storage - Training
Lär dig hur du använder Azure Blob Storage-klientbiblioteket för att skapa och uppdatera Blob Storage-resurser.
Certifiering
Microsoft Certified: Azure Developer Associate - Certifications
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.
Dokumentation
Ladda upp en blob med Python - Azure Storage
Lär dig hur du laddar upp en blob till ditt Azure Storage-konto med hjälp av Python-klientbiblioteket.
Kom igång med Azure Blob Storage och Python - Azure Storage
Kom igång utveckla ett Python-program som fungerar med Azure Blob Storage. Den här artikeln hjälper dig att konfigurera ett projekt och auktorisera åtkomst till en Azure Blob Storage-slutpunkt.
Ladda ned en blob med Python - Azure Storage
Lär dig hur du laddar ned en blob i Azure Storage med hjälp av Python-klientbiblioteket.