PHP Microsoft Azure Storage Blob 上傳檔案

require_once 'vendor/autoload.php';  

use MicrosoftAzure\Storage\Blob\BlobRestProxy;
use WindowsAzure\Blob\Models\CreateContainerOptions;
use WindowsAzure\Blob\Models\CreateBlobOptions;
use WindowsAzure\Blob\Models\PublicAccessType;
use WindowsAzure\Common\ServiceException;

$storageAccount="填入你的 Windows Azure 儲存體名稱";
$storagePrimaryKey = "填入對應的管理金鑰";
$connectionString = 'DefaultEndpointsProtocol=https;AccountName=$storageAccount;AccountKey=$storagePrimaryKey';

# 建立 Blob 服務的用戶端
$blobRestProxy = BlobRestProxy::createBlobService($connectionString);


# 檔案名稱
$path = md5(strval(time())).".jpg";
$file = fopen($_FILES['file']['tmp_name'], 'r');

# 容器名稱
$containerName = "assets";

try {
	# 上傳檔案內容
	$blobRestProxy->createBlockBlob($containerName, $path, $file);
	
	# 上傳完成,產生可存取的 URL
	$url = "https://$storageAccount.blob.core.windows.net/$containerName/$path";
	
} catch (ServiceException $e) {
	# 處理錯誤
	$code = $e->getCode();
	$error_message = $e->getMessage();
	echo $code.": ".$error_message.PHP_EOL;
}

Reference
Azure/azure-storage-php – Github
Azure 儲存體文件 – 教學課程和 API 參考
PHP 開發人員中心| Microsoft Azure
PHP on Microsoft Azure開發實戰(四) – 使用 Microsoft Azure Storage – Blob storage 處理靜態檔案

發佈留言