iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0
AI & Data

我不太懂 AI,可是我會一點 Python 和 Azure系列 第 9

Day 09 Azure Storage Account- 給照片找個家

Azure Storage Account- 給照片找個家

Azure Storage Account 是利用 blob 來儲存資料的空間,而 blob 則是一種可以儲存大量文字或二進位資料的物件,資料可以是各種影音、文件或壓縮檔案。在申請建立資源時,資源名稱為 Storage Account (儲存體帳戶),但在相關說明文件是在 Azure Blob 的說明文件之中。(謎之聲:用Imgur的 API 也可以啊~~)

申請 Storage Account

  1. 進入https://portal.azure.com/#home
  2. 點選建立資源
  3. 搜尋並選擇 Storage account (儲存體帳戶)
  4. 名稱和區域是必填項目,其他內容就是情況填寫了。如果沒有特別考量就直接依照預設條件設定。
  5. 檢閱 + 建立

安裝Python套件

pip3.7 install azure-storage-blob

取得串接字串

取得串接字串才能用 azure blob python套件存取 blob。

  • 進到剛申請好的 storage account 頁面
  • 在左邊的選單選擇存取金鑰
  • 點選顯示金鑰
  • 複製 key1 下的連接字串

示範程式

  • 先建立自己的container client,並設定權限。
import os
from azure.storage.blob import BlobServiceClient, BlobClient, ContainerClient
import json
import requests
from azure.storage.blob import AccessPolicy, ContainerSasPermissions


# 這邊就是填剛剛複製的連接字串
connect_str = 'Your connect string'

blob_service_client = BlobServiceClient.from_connection_string(connect_str)

# 自己命名 container 名稱,建立 container client
container_client = blob_service_client.create_container(<container name>)

# 設定 blob 讀寫權限,方便之後使用檔案的 URL
access_policy = AccessPolicy(permission=ContainerSasPermissions(read=True, write=True))
identifiers = {'both': access_policy}
container_client.set_container_access_policy(identifiers, public_access='blob')

  • 以 binary 的方式讀取檔案,並且上傳。

with open('your.jpg', "rb") as data:
    blob_client.upload_blob(data)
data.close()

# 印出檔案的 URL
print(blob_client.url)

在之後為了方便起見,可以把上述程式碼做成 function ,整合到 chatbot。接下來跟電腦視覺相關的服務,都可以搭配 blob 的功能來使用。下一篇,我們來看圖說故事。


上一篇
Day 08 Azure cognitive service: object detection- 匡出照片中的喵
下一篇
Day 10 Azure cognitive service: image description- 看圖說故事
系列文
我不太懂 AI,可是我會一點 Python 和 Azure30

尚未有邦友留言

立即登入留言