Laravel Azure Образы кэша хранилища BLOB-объектов - PullRequest
0 голосов
/ 18 июня 2020

это мой сценарий: у меня есть приложение Laravel 6.x, и я использую FlySystemAzureBlobStorage пакет для хранения изображений в Azure Blob Storage. Затем я хочу использовать пакет InterventionImageCache для получения и кеширования изображений для более быстрой загрузки клиентов в разных размерах. Я уже сделал это таким образом:

public static function getImageResponseForApi($storageDiskName, $imagePath, $width = null, $height = null)
{
    //check if the image exists on disk
    $exists = empty($storageDiskName) ?
        Storage::exists($imagePath) :
        Storage::disk($storageDiskName)->exists($imagePath);
    if ($exists) {
        $image = empty($storageDiskName) ?
            Storage::get($imagePath) :
            Storage::disk($storageDiskName)->get($imagePath);
        if (!empty($width) || !empty($height)) {
            //use the image cache function to get the cached image if exists
            $image = \Image::cache(function ($ima) use ($image, $width, $height) {
                //check if height and with are higher than original or not
                $ima->make($image)->resize($width, $height, function ($constraint) {
                    $constraint->aspectRatio();
                    $constraint->upsize();
                });
            });
        }
        $sizes = getimagesizefromstring($image);
        $headers = [
            'Content-Length' => strlen($image),
            'Content-Type' => $sizes["mime"]
        ];
        return \Response::make($image, 200, $headers);
    } else {
        return null;
    }
}

При такой работе возникает проблема: я должен загрузить изображение из azure хранилища BLOB-объектов, прежде чем система сможет проверить, есть ли кэшированная версия с измененным размером он существует.

Пакет Azure, который я использую, не дает возможности получить пути к изображениям, поэтому я не могу найти другое решение моей проблемы.

Итак, есть ли способ добиться кэширования изображений без необходимости каждый раз загружать файл?

...