🦁

PHPでAzure Storageにアップロード(Azure Blob Storage)

2021/04/14に公開

備忘のため書きます。
めっちゃめんどいので細かいとこは省略。

環境

  • PHP 7.4.16
  • composer 2.0.11
  • azure-storage-php
  • Azure ストレージアカウント
    • サブスクリプション
      • 無料使用版
    • パフォーマンス/アクセス層
      • Standard/ホット
    • アカウントの種類
      • StorageV2 (汎用 v2)

手順

ストレージアカウントを作成してコンテナを作る


アクセスキーから接続文字列をメモる

azure-storage-phpライブラリをインストール

composer require "microsoft/azure-storage-blob"

コード書く

サンプル

[ディレクトリ構成]

.
├── composer.json
├── composer.lock
├── index.php
├── pose_pien_uruuru_woman.png
└── vendor

[コード]

<?php

require_once "vendor/autoload.php";

use MicrosoftAzure\Storage\Blob\BlobRestProxy;
use MicrosoftAzure\Storage\Common\ServiceException;

function upload(string $filePath)
{
    try {
        // Default から始まってるやつ
        $connectionString = {接続文字列};
        $container = 'test-container';

        $content = fopen($filePath, "r");

        $blobClient = BlobRestProxy::createBlobService($connectionString);
        $blobClient->createBlockBlob($container, $filePath, $content);

        if (is_resource($content)) {
            fclose($content);
        }

        echo "upload done" . PHP_EOL;
    } catch (ServiceException $e) {
        $code = $e->getCode();
        $errorMessage = $e->getMessage();
        echo "{$code}: {$errorMessage}" . PHP_EOL;
    }
}

upload('pose_pien_uruuru_woman.png');

実行してみる

$ php index.php
upload done

確認

OK!!!終わり!!!

Discussion