Transfer objek ke/dari penyimpanan Azure Blob menggunakan PHP

Dalam mulai cepat ini, Anda mempelajari cara menggunakan PHP untuk mengunggah, mengunduh, dan mencantumkan blok blob di dalam kontainer di penyimpanan Azure Blob.

Prasyarat

Untuk mengakses Azure Storage, Anda perlu berlangganan Azure. Jika Anda belum berlangganan, buat akun gratis sebelum memulai.

Semua akses ke Azure Storage dilakukan melalui akun penyimpanan. Untuk mulai cepat ini, Anda dapat membuat akun penyimpanan menggunakan portal Azure, Azure PowerShell, atau Azure CLI. Untuk bantuan membuat akun penyimpanan, lihat Membuat akun penyimpanan.

Pastikan Anda sudah menginstal prasyarat tambahan berikut ini :

Unduh aplikasi contoh

Aplikasi contoh yang digunakan dalam mulai cepat ini adalah aplikasi PHP dasar.

Gunakan git untuk mengunduh salinan aplikasi ke lingkungan pengembangan Anda.

git clone https://github.com/Azure-Samples/storage-blobs-php-quickstart.git

Perintah ini menciptakan klon repositori pada folder git lokal Anda. Untuk membuka aplikasi contoh PHP, cari folder storage-blobs-php-quickstart, dan buka file phpqs.php.

Menyalin info masuk Anda dari portal Microsoft Azure

Aplikasi sampel perlu melakukan otorisasi akses ke akun penyimpanan Anda. Berikan kredensial akun penyimpanan Anda ke aplikasi dalam bentuk string koneksi. Untuk melihat kredensial akun penyimpanan Anda:

  1. Di portal Microsoft Azure masuk ke akun penyimpanan Anda.

  2. Di bagian Pengaturan dari gambaran umum akun penyimpanan, pilih Tombol akses untuk menampilkan kunci akses akun dan string koneksi Anda.

  3. Perhatikan nama akun penyimpanan Anda, yang akan Anda perlukan untuk otorisasi.

  4. Temukan nilaiKunci di bawah key1, dan pilih Salin untuk menyalin kunci akun.

    Cuplikan layar memperlihatkan cara menyalin kunci akun Anda dari portal Microsoft Azure

Konfigurasikan string koneksi penyimpanan Anda

Anda harus menuliskan nama akun penyimpanan dan kunci akun Anda pada aplikasi untuk membuat instans BlobRestProxy untuk aplikasi Anda. Sebaiknya simpan pengidentifikasi ini dalam variabel lingkungan pada mesin lokal yang menjalankan aplikasi. Ikuti salah satu contoh di bawah ini yang sesuai dengan Sistem Operasi Anda untuk membuat variabel lingkungan. Ganti nilai youraccountname dan youraccountkey dengan nama dan kunci akun Anda.

export ACCOUNT_NAME=<youraccountname>
export ACCOUNT_KEY=<youraccountkey>

Konfigurasikan lingkungan Anda

Ambil folder dari folder git lokal Anda dan letakkan di direktori yang dilayani oleh server PHP Anda. Kemudian, buka perintah yang dicakup ke direktori yang sama dan masukkan: php composer.phar install

Jalankan sampel

Sampel ini membuat berkas uji di folder '.'. Program sampel mengunggah file uji ke penyimpanan Blob, mencantumkan blob di dalam kontainer, dan mengunduh file dengan nama baru.

Jalankan sampel. Output berikut adalah contoh output yang dikembalikan saat menjalankan aplikasi:

Uploading BlockBlob: HelloWorld.txt
These are the blobs present in the container: HelloWorld.txt: https://myexamplesacct.blob.core.windows.net/blockblobsleqvxd/HelloWorld.txt

This is the content of the blob uploaded: Hello Azure!

Saat Anda menekan tombol yang ditampilkan, program sampel akan menghapus kontainer penyimpanan dan file. Sebelum melanjutkan, periksa folder server Anda untuk dua file tersebut. Anda dapat membukanya dan lihat bahwa mereka identik.

Anda juga dapat menggunakan alat seperti Azure Storage Explorer untuk melihat file di penyimpanan Blob. Azure Storage Explorer adalah alat lintas-platform gratis yang memungkinkan Anda mengakses informasi akun penyimpanan Anda.

Setelah memverifikasi file, tekan tombol apa saja untuk menyelesaikan demo dan menghapus file uji. Setelah Anda tahu apa yang dilakukan oleh sampel, buka file example.rb untuk melihat kode.

Pahami kode sampel

Selanjutnya, kita telusuri kode sampel sehingga Anda dapat memahami cara kerjanya.

Dapatkan referensi ke objek penyimpanan

Hal pertama yang harus dilakukan adalah membuat referensi ke objek yang digunakan untuk mengakses dan mengelola penyimpanan Blob. Objek-objek ini saling membangun satu sama lain, dan tiap objek digunakan oleh objek berikutnya yang tertera dalam daftar.

  • Buat instans objek BlobRestProxy penyimpanan Azure untuk menyiapkan kredensial koneksi.
  • Buat objek BlobService yang menunjuk ke layanan Blob di akun penyimpanan Anda.
  • Buat objek Kontainer, yang mewakili kontainer yang Anda akses. Kontainer digunakan untuk mengelola blob Anda seperti saat menggunakan folder di komputer untuk mengelola file Anda.

Setelah Anda memiliki objek kontainer blobClient, Anda dapat membuat objek blob Blok yang menunjuk ke blob tertentu yang membuat Anda tertarik. Kemudian Anda dapat melakukan operasi seperti mengunggah, mengunduh, dan menyalin.

Penting

Nama kontainer harus menggunakan huruf kecil. Lihat Penamaan dan Referensi Kontainer, Blob, dan Metadata untuk informasi lebih lanjut tentang nama kontainer dan blob.

Pada bagian ini, Anda menyiapkan instans dari klien penyimpanan Azure, menginstansiasi objek layanan blob, membuat kontainer baru, dan mengatur izin akses pada kontainer agar blob bersifat publik. Kontainer juga disebut sebagai quickstartblobs.

    # Setup a specific instance of an Azure::Storage::Client
    $connectionString = "DefaultEndpointsProtocol=https;AccountName=".getenv('account_name').";AccountKey=".getenv('account_key');

    // Create blob client.
    $blobClient = BlobRestProxy::createBlobService($connectionString);

    # Create the BlobService that represents the Blob service for the storage account
    $createContainerOptions = new CreateContainerOptions();

    $createContainerOptions->setPublicAccess(PublicAccessType::CONTAINER_AND_BLOBS);

    // Set container metadata.
    $createContainerOptions->addMetaData("key1", "value1");
    $createContainerOptions->addMetaData("key2", "value2");

    $containerName = "blockblobs".generateRandomString();

    try    {
        // Create container.
        $blobClient->createContainer($containerName, $createContainerOptions);

Unggah blob ke kontainer

Penyimpanan blob mendukung blob blok, blob penambahan, dan blob halaman. Blok blob adalah blok yang paling sering digunakan, dan blob tersebut digunakan pada mulai cepat ini.

Untuk mengunggah file ke blob, dapatkan jalur penuh file dengan menggabungkan nama direktori dengan nama file pada drive lokal Anda. Kemudian Anda dapat mengunggah file ke jalur yang ditentukan menggunakan metode createBlockBlob() .

Kode sampel mengambil file lokal dan mengunggahnya ke Azure. File disimpan sebagai myfile dan nama blob sebagai fileToUpload pada kode. Contoh berikut mengunggah file ke kontainer Anda yang disebut sebagai quickstartblobs.

    $myfile = fopen("HelloWorld.txt", "w") or die("Unable to open file!");
    fclose($myfile);

    # Upload file as a block blob
    echo "Uploading BlockBlob: ".PHP_EOL;
    echo $fileToUpload;
    echo "<br />";

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

    //Upload blob
    $blobClient->createBlockBlob($containerName, $fileToUpload, $content);

Untuk melakukan pembaruan parsial konten blok blob, gunakan metode createblocklist() . Ukuran blok blob dapat mencapai 4,7 TB, dan dalam bentuk apa pun mulai dari spreadsheet Excel hingga file video berukuran besar. Blob halaman terutama digunakan untuk file VHD yang digunakan untuk mendukung IaaS VM. Blob penambahan digunakan untuk pengelogan, seperti ketika Anda ingin menulis pada file dan terus menambahkan lebih banyak informasi. Blob penambahan harus digunakan dalam model penulis tunggal. Sebagian besar objek yang disimpan dalam penyimpanan Blob adalah blob blok.

Cantumkan blob di dalam kontainer

Dapatkan daftar file dalam kontainer menggunakan metode ListBlobs. Kode berikut mengambil daftar blob, lalu melakukan perulangan melalui kode tersebut, menunjukkan nama-nama blob yang ditemukan dalam kontainer.

    $listBlobsOptions = new ListBlobsOptions();
    $listBlobsOptions->setPrefix("HelloWorld");

    echo "These are the blobs present in the container: ";

    do{
        $result = $blobClient->listBlobs($containerName, $listBlobsOptions);
        foreach ($result->getBlobs() as $blob)
        {
            echo $blob->getName().": ".$blob->getUrl()."<br />";
        }

        $listBlobsOptions->setContinuationToken($result->getContinuationToken());
    } while($result->getContinuationToken());

Dapatkan isi blob Anda

Dapatkan isi blob Anda menggunakan metode getBlob() . Kode berikut menampilkan konten blob yang diunggah di bagian sebelumnya.

    $blob = $blobClient->getBlob($containerName, $fileToUpload);
    fpassthru($blob->getContentStream());

Membersihkan sumber daya

Jika Anda tidak lagi membutuhkan blob yang diunggah dalam mulai cepat ini, Anda dapat menghapus seluruh kontainer menggunakan metode deleteContainer() . Jika file yang dibuat tidak lagi dibutuhkan, gunakan metode deleteBlob() untuk menghapus file.

    // Delete blob.
    echo "Deleting Blob".PHP_EOL;
    echo $fileToUpload;
    echo "<br />";
    $blobClient->deleteBlob($_GET["containerName"], $fileToUpload);

    // Delete container.
    echo "Deleting Container".PHP_EOL;
    echo $_GET["containerName"].PHP_EOL;
    echo "<br />";
    $blobClient->deleteContainer($_GET["containerName"]);

    //Deleting local file
    echo "Deleting file".PHP_EOL;
    echo "<br />";
    unlink($fileToUpload);   

Sumber daya untuk mengembangkan aplikasi PHP menggunakan blob

Lihat sumber daya tambahan ini untuk pengembangan PHP menggunakan penyimpanan Blob:

Langkah berikutnya

Dalam mulai cepat ini, Anda mempelajari cara mentransfer file antara disk lokal dan Azure blob storage menggunakan PHP. Untuk mempelajari lebih lanjut tentang bekerja dengan PHP, lanjutkan ke pusat Pengembang PHP kami.

Untuk informasi lebih lanjut tentang Storage Explorer dan Blob, lihat Mengelola sumber daya Azure Blob storage menggunakan Storage Explorer.