MODULE 20 Storage · 15–20% ~2.5 giờ Administrator

Azure Storage bằng Công Cụ

Làm chủ bốn công cụ quản lý Azure Storage: Storage Explorer GUI trực quan, Import/Export Service cho di chuyển petabyte, WAImportExport CLI chuẩn bị ổ cứng, và AzCopy cho sao chép dữ liệu tốc độ cao.

Lý Thuyết Cốt Lõi

1. Tổng Quan Bộ Công Cụ Azure Storage — Chọn Đúng Cho Đúng Việc

Azure cung cấp bốn công cụ chính để quản lý và di chuyển dữ liệu Storage. Mỗi công cụ phù hợp với một nhóm use-case cụ thể dựa trên khối lượng dữ liệu, môi trường và yêu cầu tự động hóa.

Công cụ Giao diện Dùng khi nào Giới hạn
Storage Explorer Desktop GUI (Windows/macOS/Linux) Quản lý thủ công, browse, upload/download file lẻ Không tự động hóa được
Import/Export Service Azure Portal + vật lý (ổ cứng) Di chuyển dữ liệu cực lớn (>1 TB) khi băng thông hạn chế Cần ship ổ cứng vật lý, mất 7–10 ngày
WAImportExport CLI (Windows only) Chuẩn bị ổ cứng trước khi gửi cho Import/Export job Chỉ chạy trên Windows, cần BitLocker
AzCopy CLI (Windows/Linux/macOS) Copy/sync dữ liệu qua internet, tự động hóa, CI/CD pipeline Cần băng thông internet ổn định
Quy tắc chọn công cụ: Dữ liệu <1 TB và có internet tốt → AzCopy. Dữ liệu >1 TB hoặc internet không ổn định → Import/Export (WAImportExport để chuẩn bị ổ cứng). Quản lý thủ công không cần script → Storage Explorer.

2. Azure Storage Explorer — Quản Lý Trực Quan

Storage Explorer là ứng dụng desktop miễn phí (standalone) cho phép quản lý toàn bộ Azure Storage resources từ giao diện đồ họa. Lý tưởng cho administrator cần thao tác thủ công, debug, hoặc dạy học.

Tính năng chính
  • • Quản lý Blob containers, File shares, Queues, Tables trong 1 giao diện
  • • Upload, download, xóa, copy, move file/folder
  • • Tạo/xóa containers, shares, queues, tables
  • • Xem và chỉnh sửa metadata, access tier của blob
  • • Tạo và quản lý SAS tokens từ GUI
  • • Kết nối qua Storage Account key, SAS URI, Azure AD, hoặc emulator
Phương thức kết nối
  • Azure subscription: đăng nhập Azure AD, xem toàn bộ storage accounts
  • Storage Account name + key: kết nối trực tiếp một account
  • SAS URI: kết nối một container/share/queue với quyền hạn cụ thể
  • Azure Storage Emulator / Azurite: kết nối môi trường local dev
  • Connection string: paste connection string từ Portal
Storage Explorer trên Portal
  • • Azure Portal tích hợp sẵn Storage Explorer (Preview) trong menu của Storage Account
  • • Không cần cài ứng dụng riêng — truy cập từ browser
  • • Tính năng tương tự standalone nhưng giới hạn hơn
  • • Lý tưởng khi cần truy cập nhanh từ máy không cài software
Quản lý Blob Access Tiers
  • • Click phải blob → "Change Access Tier" → chọn Hot/Cool/Cold/Archive
  • • Xem tier hiện tại trong cột "Access Tier" của danh sách blob
  • • Rehydrate blob từ Archive: chọn Standard (1–15 giờ) hoặc High (trong 1 giờ)
  • • Bulk change tier cho nhiều blob bằng cách chọn nhiều và right-click

3. Azure Import/Export Service — Di Chuyển Petabyte Qua Ổ Cứng Vật Lý

Khi khối lượng dữ liệu quá lớn để upload qua internet (hàng chục TB trở lên), Azure Import/Export Service cho phép gửi ổ cứng vật lý đến Azure datacenter. Microsoft sẽ copy dữ liệu từ ổ cứng vào Azure Storage (Import) hoặc ngược lại (Export).

Import Job
  • • Mục đích: upload dữ liệu lớn vào Azure Blob hoặc Azure Files
  • • Bạn chuẩn bị ổ cứng, mã hóa BitLocker, tạo journal file
  • • Ship ổ cứng đến Azure datacenter (FedEx/DHL)
  • • Microsoft copy dữ liệu vào storage account của bạn
  • • Ổ cứng được ship trả lại sau khi hoàn thành
Export Job
  • • Mục đích: download dữ liệu lớn từ Azure Blob về on-premises
  • • Bạn tạo Export job trên Portal, chỉ định containers/blobs cần export
  • • Ship ổ cứng trống đến Azure datacenter
  • • Microsoft copy dữ liệu từ Blob vào ổ cứng, mã hóa BitLocker
  • • Chỉ hỗ trợ Blob Storage (không hỗ trợ Azure Files cho export)
Quy trình Import Job (7 bước)
1. Xác định dữ liệu cần import và tổng dung lượng → tính số ổ cứng cần thiết
2. Cài WAImportExport tool trên Windows → chuẩn bị ổ cứng, tạo journal file và dataset.csv
3. Mã hóa ổ cứng bằng BitLocker → ghi lại BitLocker key
4. Tạo Import job trên Azure Portal → điền thông tin storage account, container, shipping
5. Ship ổ cứng đến Azure datacenter theo địa chỉ ghi trên Portal
6. Cập nhật tracking number trên Portal → Microsoft nhận và copy dữ liệu
7. Kiểm tra trạng thái job trên Portal → ổ cứng được ship trả lại
WAImportExport Tool

WAImportExport.exe là CLI tool chạy trên Windows để chuẩn bị ổ cứng trước khi gửi Import job. Có hai phiên bản: v1 (cho Blob Storage) và v2 (cho Azure Files).

PrepImport

Chuẩn bị ổ cứng: copy dữ liệu, bật BitLocker, tạo journal file (.jrn) ghi lại mapping giữa local file và destination path trên Azure.

Dataset CSV

File CSV định nghĩa nguồn dữ liệu: cột Source (đường dẫn local), Destination (blob path trên Azure), Disposition (rename/no-overwrite/overwrite).

Driveset CSV

File CSV liệt kê các ổ cứng sẽ được dùng: cột DriveId (serial number), BitLockerKey, ManifestFile (đường dẫn journal).

Yêu cầu ổ cứng: SATA II/III HDD hoặc SSD, định dạng NTFS, BitLocker enabled. Không dùng USB flash drive. Mỗi ổ cứng tối đa 10 TB. Ổ cứng phải có connector USB hoặc SATA để kết nối với máy Windows khi chạy WAImportExport. Địa chỉ datacenter nhận hàng tùy theo region storage account — chỉ có tại Mỹ và EU, khu vực Southeast Asia dùng datacenter Singapore.

4. AzCopy — Công Cụ Copy Dữ Liệu Tốc Độ Cao

AzCopy là CLI tool được tối ưu hóa để copy và sync dữ liệu đến/từ Azure Storage với hiệu năng cao. Hỗ trợ copy giữa storage accounts, giữa Blob và File, và từ/đến local. Đây là công cụ được dùng nhiều nhất trong CI/CD và automation.

Xác thực AzCopy
  • Azure AD (OAuth): azcopy login → dùng interactive browser. Khuyến nghị cho user interactively.
  • SAS Token: append SAS vào URL. Phù hợp cho automation không cần login.
  • Managed Identity: dùng trên Azure VM/App Service — không cần credential. Tốt nhất cho CI/CD trên Azure.
  • Service Principal: azcopy login --service-principal với client ID & secret.
Các lệnh AzCopy quan trọng
  • azcopy copy — copy file/folder giữa local và Azure hoặc giữa 2 storage accounts
  • azcopy sync — đồng bộ hai-chiều: chỉ copy file mới/thay đổi, xóa file không còn ở nguồn
  • azcopy list — liệt kê nội dung container/share
  • azcopy remove — xóa blob/file trên Azure
  • azcopy jobs list — xem trạng thái các jobs đang chạy
  • azcopy jobs resume [jobId] — tiếp tục job bị gián đoạn
Parallel

Copy song song nhiều file đồng thời. Điều chỉnh số luồng bằng flag --cap-mbps

Resumable

Tự động resume nếu mất kết nối giữa chừng — không cần copy lại từ đầu

Server-side

Copy giữa 2 Azure storage accounts không đi qua máy local — nhanh và không tốn băng thông local

copy vs sync: azcopy copy luôn copy file kể cả khi đã tồn tại ở đích. azcopy sync so sánh last-modified time và chỉ copy file mới hoặc thay đổi, có thể xóa file ở đích không còn ở nguồn khi thêm flag --delete-destination=true. Dùng sync cho backup định kỳ, dùng copy cho migration một lần.

Bài Tập Thực Hành (Lab)

Lab 20-A: Storage Explorer Lab 20-B: AzCopy Copy & Sync Lab 20-C: AzCopy với SAS Token Lab 20-D: WAImportExport Prep
1

Tạo môi trường Lab — 2 Storage Accounts để thực hành copy

Azure CLI— Chạy được trên PowerShell, CMD, Bash hoặc Azure Cloud Shell
# Tạo Resource Group
az group create \
  --name rg-az104-m20 \
  --location southeastasia \
  --tags Module=20 Course=AZ-104

# Tạo Storage Account nguồn (source)
SUFFIX=$(date +%s | tail -c 6)
SRC_ACCOUNT="stm20src${SUFFIX}"
DST_ACCOUNT="stm20dst${SUFFIX}"
echo "Source: $SRC_ACCOUNT  |  Destination: $DST_ACCOUNT"

az storage account create \
  --name $SRC_ACCOUNT \
  --resource-group rg-az104-m20 \
  --location southeastasia \
  --sku Standard_LRS \
  --kind StorageV2 \
  --https-only true \
  --min-tls-version TLS1_2

# Tạo Storage Account đích (destination)
az storage account create \
  --name $DST_ACCOUNT \
  --resource-group rg-az104-m20 \
  --location southeastasia \
  --sku Standard_LRS \
  --kind StorageV2 \
  --https-only true \
  --min-tls-version TLS1_2

# Lấy connection strings
SRC_CONN=$(az storage account show-connection-string \
  --name $SRC_ACCOUNT --resource-group rg-az104-m20 --query connectionString -o tsv)
DST_CONN=$(az storage account show-connection-string \
  --name $DST_ACCOUNT --resource-group rg-az104-m20 --query connectionString -o tsv)

# Tạo containers
az storage container create --name "source-data" --connection-string "$SRC_CONN"
az storage container create --name "dest-data"   --connection-string "$DST_CONN"
az storage container create --name "backup"      --connection-string "$DST_CONN"

# Upload file test vào source container
for i in {1..5}; do
  echo "Test file $i - AZ-104 Module 20 Lab - $(date)" > /tmp/testfile${i}.txt
  az storage blob upload \
    --file /tmp/testfile${i}.txt \
    --name "folder1/testfile${i}.txt" \
    --container-name "source-data" \
    --connection-string "$SRC_CONN"
done
echo "5 test files uploaded to source-data container"
az storage blob list --container-name "source-data" --connection-string "$SRC_CONN" \
  --query "[].name" -o table
Verify Portal: Portal → Storage Accounts → stm20srcXXXXXX → Containers → source-data → folder1 → xác nhận thấy 5 file testfile1.txt đến testfile5.txt. Confirm cả $DST_ACCOUNT đã tạo với 2 containers: dest-data và backup.
2

AzCopy — Copy và Sync giữa hai Storage Accounts

Bash— Linux/macOS/Azure Cloud Shell. Tải AzCopy tại aka.ms/downloadazcopy-v10
# === Cài AzCopy trên Linux/Cloud Shell ===
# Tải AzCopy v10 (latest stable)
wget -q "https://aka.ms/downloadazcopy-v10-linux" -O azcopy_linux.tar.gz
tar -xf azcopy_linux.tar.gz
AZCOPY_BIN=$(find . -name "azcopy" -type f | head -1)
chmod +x $AZCOPY_BIN
sudo mv $AZCOPY_BIN /usr/local/bin/azcopy
azcopy --version

# === Xác thực bằng Azure AD (interactive login) ===
azcopy login
# Mở browser → đăng nhập Azure AD → azcopy được authorized

# === Copy toàn bộ container từ source → dest ===
# Thay tên storage account thực của bạn vào các biến sau
SRC_ACCOUNT="stm20srcXXXXXX"
DST_ACCOUNT="stm20dstXXXXXX"

azcopy copy \
  "https://${SRC_ACCOUNT}.blob.core.windows.net/source-data/*" \
  "https://${DST_ACCOUNT}.blob.core.windows.net/dest-data/" \
  --recursive \
  --log-level INFO

# Verify: liệt kê blobs ở đích
azcopy list "https://${DST_ACCOUNT}.blob.core.windows.net/dest-data/"

# === Upload file từ local lên Azure ===
echo "New local file for AzCopy upload test" > /tmp/local-upload.txt
azcopy copy \
  "/tmp/local-upload.txt" \
  "https://${DST_ACCOUNT}.blob.core.windows.net/dest-data/uploads/local-upload.txt"

# === Download blob về local ===
mkdir -p /tmp/azcopy-download
azcopy copy \
  "https://${SRC_ACCOUNT}.blob.core.windows.net/source-data/folder1/testfile1.txt" \
  "/tmp/azcopy-download/testfile1.txt"
cat /tmp/azcopy-download/testfile1.txt

# === SYNC: đồng bộ source → backup (chỉ copy file mới/thay đổi) ===
azcopy sync \
  "https://${SRC_ACCOUNT}.blob.core.windows.net/source-data/" \
  "https://${DST_ACCOUNT}.blob.core.windows.net/backup/" \
  --recursive \
  --delete-destination=false

echo "Sync complete. Run again to see only changed files are transferred."

# === Xem jobs đã chạy ===
azcopy jobs list
Verify Portal: Portal → $DST_ACCOUNT → Containers → dest-data → xác nhận thấy folder1/ với 5 file + uploads/local-upload.txt. Portal → backup container → xác nhận thấy 5 file từ source-data được sync sang. Chú ý transfer stats hiển thị trong output AzCopy (số file, tổng bytes, thời gian).
3

AzCopy với SAS Token — Xác thực không cần đăng nhập Azure AD

Azure CLI— Tạo SAS token, sau đó dùng Bash để chạy AzCopy
SRC_ACCOUNT="stm20srcXXXXXX"   # thay thế
DST_ACCOUNT="stm20dstXXXXXX"   # thay thế

# Tạo SAS token cho source container (quyền Read, List)
SRC_SAS=$(az storage container generate-sas \
  --account-name $SRC_ACCOUNT \
  --name "source-data" \
  --permissions rl \
  --expiry "$(date -u -d '+2 hours' '+%Y-%m-%dT%H:%MZ' 2>/dev/null || date -u -v+2H '+%Y-%m-%dT%H:%MZ')" \
  --https-only \
  --output tsv)
echo "Source SAS: $SRC_SAS"

# Tạo SAS token cho destination container (quyền Read, Write, List, Create)
DST_SAS=$(az storage container generate-sas \
  --account-name $DST_ACCOUNT \
  --name "dest-data" \
  --permissions rwlc \
  --expiry "$(date -u -d '+2 hours' '+%Y-%m-%dT%H:%MZ' 2>/dev/null || date -u -v+2H '+%Y-%m-%dT%H:%MZ')" \
  --https-only \
  --output tsv)
echo "Destination SAS: $DST_SAS"

# Dùng AzCopy với SAS token (không cần azcopy login)
# Server-side copy: dữ liệu không đi qua máy local
azcopy copy \
  "https://${SRC_ACCOUNT}.blob.core.windows.net/source-data/?${SRC_SAS}" \
  "https://${DST_ACCOUNT}.blob.core.windows.net/dest-data/sas-copy/?${DST_SAS}" \
  --recursive

# Dùng SAS token cấp storage-account level (Account SAS)
ACCOUNT_SAS=$(az storage account generate-sas \
  --account-name $SRC_ACCOUNT \
  --services b \
  --resource-types sco \
  --permissions rl \
  --expiry "$(date -u -d '+1 hour' '+%Y-%m-%dT%H:%MZ' 2>/dev/null || date -u -v+1H '+%Y-%m-%dT%H:%MZ')" \
  --https-only \
  --output tsv)

# List tất cả containers trong storage account dùng Account SAS
azcopy list "https://${SRC_ACCOUNT}.blob.core.windows.net/?${ACCOUNT_SAS}"
Verify Portal: Portal → $DST_ACCOUNT → Containers → dest-data → thư mục "sas-copy" → xác nhận thấy các file được copy từ source. Lưu ý output AzCopy ghi rõ "100.00%, done" và không báo lỗi authentication. So sánh với bước 2 dùng Azure AD login — cả hai đều copy thành công nhưng SAS token không cần browser login.
4

Chuẩn bị WAImportExport — Tạo dataset.csv và kiểm tra cú pháp

PowerShell— Chạy trên Windows. WAImportExport.exe chỉ chạy trên Windows
# === Mô phỏng chuẩn bị WAImportExport (không cần ổ cứng thật) ===
# Mục tiêu: hiểu cấu trúc file CSV và command line

# Tạo thư mục làm việc
$workDir = "C:\ImportExportLab"
New-Item -ItemType Directory -Force -Path $workDir
New-Item -ItemType Directory -Force -Path "$workDir\SourceData\Documents"
New-Item -ItemType Directory -Force -Path "$workDir\SourceData\Projects"
New-Item -ItemType Directory -Force -Path "$workDir\Journals"

# Tạo dữ liệu mẫu
1..10 | ForEach-Object {
    "File $_ - AZ-104 Module 20 - WAImportExport Demo" |
    Out-File "$workDir\SourceData\Documents\doc${_}.txt"
}
"Project config - $(Get-Date)" | Out-File "$workDir\SourceData\Projects\config.json"

# === Tạo dataset.csv (định nghĩa mapping nguồn → đích) ===
$datasetContent = @"
BasePath,DstBlobPathPrefix,BlobType,Disposition,MetadataFile,PropertiesFile
$workDir\SourceData\Documents\,import-job/documents/,BlockBlob,rename,,
$workDir\SourceData\Projects\,import-job/projects/,BlockBlob,no-overwrite,,
"@
$datasetContent | Out-File "$workDir\dataset.csv" -Encoding utf8
Write-Host "dataset.csv created:"
Get-Content "$workDir\dataset.csv"

# === Tạo driveset.csv (danh sách ổ cứng) ===
# DriveId = serial number ổ cứng (lấy từ: Get-Disk | Select SerialNumber)
$drivesetContent = @"
DriveLetter,FormatOption,SilentOrPromptOnFormat,Encryption,ExistingBitLockerKey
X:,Auto,SilentMode,Encrypt,
"@
$drivesetContent | Out-File "$workDir\driveset.csv" -Encoding utf8
Write-Host "`ndriveset.csv created:"
Get-Content "$workDir\driveset.csv"

# === Ví dụ lệnh WAImportExport (chạy khi có ổ cứng thật) ===
$storageKey = "YOUR_STORAGE_ACCOUNT_KEY"  # lấy từ Portal → Storage Account → Access keys
Write-Host "`n=== Command để chạy WAImportExport.exe (khi có ổ cứng thật) ==="
Write-Host @"
WAImportExport.exe PrepImport `
  /j:"$workDir\Journals\drive1.jrn" `
  /id:"session-001" `
  /logdir:"$workDir\Logs" `
  /sk:"$storageKey" `
  /InitialDriveSet:"$workDir\driveset.csv" `
  /DataSet:"$workDir\dataset.csv" `
  /t:X `
  /bk:"YourBitLockerRecoveryKey" `
  /EnableBitLock
"@
Write-Host "`nFiles created in: $workDir"
Get-ChildItem $workDir -Recurse | Select Name, Length, LastWriteTime
Verify: Mở File Explorer → C:\ImportExportLab → xác nhận thấy cấu trúc thư mục SourceData/Documents (10 file doc*.txt) và SourceData/Projects (config.json). Mở dataset.csv bằng Notepad → xác nhận mapping đúng: Documents → import-job/documents/, Projects → import-job/projects/. Đây là file bạn sẽ dùng khi gửi Import job thật trên Portal.
5

Cleanup — Dọn dẹp tài nguyên

Azure CLI— Chạy được trên PowerShell, CMD, Bash hoặc Azure Cloud Shell
# Xóa đăng nhập AzCopy (xóa cached tokens)
azcopy logout

# Xóa toàn bộ Resource Group — xóa cả 2 storage accounts và tất cả containers
az group delete --name rg-az104-m20 --yes --no-wait
echo "Resource group rg-az104-m20 deletion initiated."

# Dọn file local (Windows)
# Remove-Item -Recurse -Force "C:\ImportExportLab"

# Dọn file local (Linux/macOS)
rm -rf /tmp/testfile*.txt /tmp/local-upload.txt /tmp/azcopy-download/ /tmp/azcopy_linux.tar.gz
echo "Local temp files cleaned."

Kết Quả Đầu Ra

Dùng Storage Explorer thành thạo

Kết nối nhiều phương thức (Azure AD, key, SAS), quản lý blob/file/queue/table từ GUI

Hiểu Import/Export Service

Phân biệt Import vs Export job, nắm 7 bước quy trình Import, biết khi nào cần dùng

Chuẩn bị WAImportExport

Tạo dataset.csv và driveset.csv đúng cú pháp, hiểu journal file và BitLocker requirement

AzCopy copy và sync

Copy giữa storage accounts, upload/download local, phân biệt copy vs sync với --delete-destination

AzCopy xác thực đa phương thức

Dùng Azure AD login, SAS token, Managed Identity — chọn đúng phương thức cho từng ngữ cảnh

Tự động hóa Storage operations

Tích hợp AzCopy vào scripts backup định kỳ, resume job bị gián đoạn, giám sát transfer status

Ứng Dụng Thực Tế

Tình huống 1: Công ty dầu khí — Di chuyển 50 TB seismic data lên Azure

Công ty dầu khí tại Vũng Tàu có 50 TB dữ liệu địa chấn (seismic data) cần đưa lên Azure để phân tích bằng AI/ML. Đường internet tại site chỉ 100 Mbps — upload thẳng mất hơn 45 ngày.

Giải pháp

Dùng Azure Import/Export Service. Cài WAImportExport trên workstation Windows, chuẩn bị 6 ổ cứng 10TB mỗi ổ. Mã hóa BitLocker, tạo journal files. Ship ổ cứng đến Azure datacenter Singapore (nearest region). Toàn bộ quy trình mất 10 ngày thay vì 45 ngày.

Triển khai

Dataset.csv định nghĩa 3 loại data: raw-seismic → seismic-raw/container, processed → seismic-processed/container, reports → reports/container. Sau khi Import job hoàn thành, dùng AzCopy sync để đồng bộ incremental dữ liệu mới phát sinh hàng tuần.

Lợi ích

Di chuyển 50TB trong 10 ngày. Chi phí Import job thấp hơn bandwidth nếu upload. Dữ liệu được mã hóa BitLocker trong suốt quá trình vận chuyển. Sau migration, AzCopy sync chỉ mất vài giờ mỗi tuần cho dữ liệu mới.

Tình huống 2: Startup công nghệ — Tự động backup build artifacts lên Azure

Startup phần mềm tại Hà Nội cần backup build artifacts (Docker images, deployment packages) sau mỗi CI/CD pipeline. Hiện đang dùng S3 cần migrate sang Azure Blob.

Giải pháp

AzCopy trong GitHub Actions / Azure DevOps pipeline. Dùng Managed Identity trên Azure-hosted runner — không cần lưu credential trong CI/CD secrets. AzCopy copy artifacts lên Azure Blob sau mỗi successful build.

Triển khai

Pipeline step: azcopy copy "./dist/*" "https://stprod.blob.core.windows.net/builds/$BUILD_ID/" --recursive. AzCopy sync weekly để xóa builds cũ hơn 30 ngày. Storage Explorer dùng để IT admin kiểm tra và download artifact khi cần troubleshoot production.

Lợi ích

Zero credential management nhờ Managed Identity. AzCopy tự resume nếu pipeline runner mất kết nối giữa chừng. Storage Explorer cho phép non-technical stakeholders browse artifacts mà không cần CLI. Tiết kiệm 60% chi phí so với lưu trên máy chủ build.

Tình huống 3: Đài truyền hình — Replicate media library giữa 2 regions

Đài truyền hình địa phương tại Đà Nẵng có 10TB video archive trên Azure Blob (region Southeast Asia) cần replicate sang region East Asia (HK) để giảm latency khi phân phối nội dung quốc tế.

Giải pháp

AzCopy server-side copy giữa 2 storage accounts ở 2 regions khác nhau. Dùng SAS token cho cả source (Read) và destination (Write). Script chạy hàng đêm bằng Azure Automation Account để sync video mới được published trong ngày.

Triển khai

azcopy sync "https://stsgp.blob.core.windows.net/media/?$SRC_SAS" "https://sthk.blob.core.windows.net/media/?$DST_SAS" --recursive. Server-side copy: dữ liệu di chuyển trực tiếp trong Azure backbone, không đi qua internet công cộng, không tốn băng thông local. Storage Explorer để editor duyệt và kiểm tra file trước khi publish.

Lợi ích

Latency giảm 60% cho viewer quốc tế nhờ nội dung gần hơn (HK vs SG). Server-side copy không tốn egress bandwidth cục bộ. Nếu sync job fail giữa chừng → azcopy jobs resume tự động tiếp tục. Chi phí copy trong cùng Azure backbone thấp hơn download/re-upload.

Zalo