kaizendeveloper/pimcore-bundle-azure-blob-sync

Fork of Rohit Raj Verma's project in order to correct some PSR4 errors shown on some Pimcore installs. This bundle use to sync all records Assets from Pimcore to Azure Blob Storage

v1.3.3 2021-09-30 16:08 UTC

This package is not auto-updated.

Last update: 2024-05-17 22:19:41 UTC


README

Fork of rohitrajv5/pimcore-bundle-azure-blob-sync on his:

Pimcore Azure Bundle is use to push Pimcore Assets on Microsoft Azure Blob Storage

Try to fix: PS4 compliance issues

Compatible with Pimcore > v5.6. Tested on Pimcore 6

Installation

Install with Composer

composer require kaizendeveloper/pimcore-bundle-azure-blob-sync

Execute following commands

bin/console pimcore:bundle:enable AzurePimcoreBundle
bin/console assets:install web

Plugin will look like this

alt text

Changes in Pimcore Admin
  1. Goto Pimcore Admin -> Settings -> Azure Blog Container Settings

  2. Enter your credentials and save.

Configurations & Settings

Add following code in "app/constant.php"

try {
    $file = __DIR__ . '/../var/config/azure.php';
    if (file_exists($file)) {
        $azureConfig = include($file);
    }
} catch (\Exception $e) {
    $azureConfig = [];
}
$azureEnabled = FALSE;
if (isset($azureConfig['enableAzure']) && $azureConfig['enableAzure']) {
    $azureEnabled = TRUE;
    define("AZURE_ACCOUNT_URL", $azureConfig['accountUrl']);
    define("AZURE_ACCOUNT_NAME", $azureConfig['accountName']);
    define("AZURE_ACCOUNT_KEY", $azureConfig['accountKey']);
    define("AZURE_CONTAINER", $azureConfig['container']);   
    $azureFileWrapperPrefix = "blob://" . AZURE_CONTAINER; // do NOT change    
    define("PIMCORE_ASSET_DIRECTORY", $azureFileWrapperPrefix . "/assets");
    //define("PIMCORE_TEMPORARY_DIRECTORY", $azureFileWrapperPrefix . "/tmp");
    //constants for reference in the views
    //define("PIMCORE_TRANSFORMED_ASSET_URL", AZURE_ACCOUNT_URL . "/" . AZURE_CONTAINER . "/assets");
    // the following paths should be private!
    define("PIMCORE_VERSION_DIRECTORY", $azureFileWrapperPrefix . "/versions");
    //define("PIMCORE_RECYCLEBIN_DIRECTORY", $azureFileWrapperPrefix . "/recyclebin");
    //define("PIMCORE_LOG_MAIL_PERMANENT", $azureFileWrapperPrefix . "/email");
    //define("PIMCORE_LOG_FILEOBJECT_DIRECTORY", $azureFileWrapperPrefix . "/fileobjects");
}
define("ENABLE_AZURE",$azureEnabled);

Uncomment option, Which you want to sync on Azure Blob Storage.

Add following code constant in "app/startup.php"

use AzurePimcoreBundle\AzureBlobStorage\StreamWrapper;
if (ENABLE_AZURE) {
    $accountUrl = AZURE_ACCOUNT_URL;
    $accountName = AZURE_ACCOUNT_NAME;
    $accountKey = AZURE_ACCOUNT_KEY;
    $connectionString = "DefaultEndpointsProtocol=https;AccountName=" . $accountName . ";AccountKey=" . $accountKey;

    $container = AZURE_CONTAINER;

    $blobClient = \MicrosoftAzure\Storage\Blob\BlobRestProxy::createBlobService($connectionString);

    StreamWrapper::register($blobClient, 'blob');

    \Pimcore\File::setContext(stream_context_create([
        'blob' => ['seekable' => true]
    ]));
}

License

GPL-3.0+