rohitrajv5/pimcore-bundle-azure-blob-sync

此插件用于同步Pimcore中的所有资产记录到Azure Blob存储

v1.3 2020-07-28 14:22 UTC

This package is auto-updated.

Last update: 2024-09-28 23:33:23 UTC


README

Pimcore Azure Bundle插件用于将Pimcore资产推送到Microsoft Azure Blob存储

兼容Pimcore > v5.6。已在Pimcore 6上测试

安装

使用Composer安装

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

执行以下命令

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

插件的外观如下

alt text

Pimcore管理后台更改
  1. 转到Pimcore管理后台 -> 设置 -> Azure Blob容器设置

  2. 输入您的凭据并保存。

配置和设置

在"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);

取消注释您想要同步到Azure Blob存储的选项。

在"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]
    ]));
}

许可证

GPL-3.0+