Azureの上Laravelアプリのためのストレージディスクまでトラブルの設定

ジャニーンHempy:

私は、Azureの上Laravel 6アプリとのトラブルを抱えています。私は自分の管理インターフェイスを構築するためにTCG /ナビゲーターを使用しています。すべての互角-ドーリー地域開発で、私はアズールでの私の開発サイトにコードを押すと、ストレージ・ディスクからのアイテムは使用できません。私は、ナビゲーターの管理パネルで壊れたイメージとしてこれを参照してください。

Laravelのファイルストレージが動作するためにシンボリックリンクを必要とするように見えます:

https://laravel.com/docs/6.x/filesystem#the-public-disk

しかし、シンボリックリンクはアズールのWindows Webアプリケーションでサポートされるように表示されません。私はへ/ストレージ/アプリ/パブリック/パブリック/ストレージをマップするために何かをする必要があります。

私は、新しい仮想ディレクトリを作成することができますが、それは問題を解決しませんでした。私は「サイト\ wwwrootの\ストレージ\アプリ\パブリック」に「/ストレージを」マッピングされたが、私はまだナビゲータ管理パネルで壊れた画像を見ています。

私は、ナビゲーターのレポでこの問題が見つかりました:

https://github.com/the-control-group/voyager/issues/417#issuecomment-304525223

そしてそれだけで修正Iの必要性のように思えるが、それはどちらか、働いていません。

私は追加しました:

        'azure' => [
            'driver' => 'local',
            'root' => storage_path('..\public\storage'),
            'url' => env('APP_URL').'/storage',
            'visibility' => 'public',
        ],

filesystems.phpへ。voyager.phpでは、私は以下を参照してください。

    'storage' => [
        'disk' => env('FILESYSTEM_DRIVER', 'public'),
    ],

であるようなものを残すために(すなわち、作業)ローカルdev内、私は自分のWebアプリケーションにアプリケーション設定を追加しました:

FILESYSTEM_DRIVER、「紺碧」に設定

私は自分のAzureのWebアプリは、私が最初に更新されたコードをプッシュするのを忘れて、私のアプリはそれが欠けていた私に言ったので、紺碧のファイルシステムを使用しようとしていることを知っています。

だから今、私は私の問題は、私はAzureストレージディスクの定義に正しい値を持っていないということかもしれないと思います。任意のアイデアを得ましたか。それとも別のアプローチの提案は、Azureの上Laravelのファイルストレージの作業を取得しようとしますか?

ジャニーンHempy:

私はおそらく正しい方法何でこの問題を解決してきましたが、それは私が探していたソリューションではありません。

最終的に、私は、サイトの管理インターフェイスを介してアップロードされたのストアメディアへの場所が必要です。ナビゲーターは、地元のdevにはデフォルトでに/ストレージ/アプリ/公共アップロードされたファイルをドロップLaravelファイルストレージを、使用しています。あなたのDEV /ステージング/ PRODサーバが同じように動作している場合、展開のための迅速かつ容易なソリューションです。それは、アップロードされたファイルは、同じサーバー上/ストレージ/アプリ/パブリックに格納されています。これは私が最初にやろうとしたものです。

私の開発と生産のサーバーは、しかし、Azureの上にあります。私のウェブサイトは、私のコンテンツを楽しむユーザーのトンが殺到した場合、彼らは、その理論的には、スケーラブルなWebアプリケーションは、複数のインスタンスは、私のコンテンツを提供することができます。私はこれを有するすべてのインスタンス期待すべきではありませんローカルストレージを優れた拡張性の高いソリューションを問わずに生きるために、コンテンツをアップロードし、管理インターフェースで実行された場合の、全てアップロードされたコンテンツのためにある専用のファイルの保存場所をこれは、最初は奇抜に思えるかもしれないが、それは、ユーザーに表示するWebサーバーの任意の数のコンテンツから一つのデータベース唾を持つと同じ考え方です。

だから、2日間非協力的なシンボリックリンクと格闘した後、私は専用のファイルの保存場所液に先に跳ね上がりました。そして、それは働きました!ここで私は魔法を実現するために要した手順は次のとおりです。

  1. Azureのストレージアカウントを作成します。
  2. ストレージアカウントでブロブコンテナを作成しました。
  3. 私のプロジェクト(にLaravel Azureストレージのパッケージを追加しましたhttps://github.com/matthewbdaly/laravel-azure-storage)。
  4. パッケージの指示に従って更新filesystems.php:
       'azure' => [
            'driver'    => 'azure',
            'name'      => env('AZURE_STORAGE_NAME'),
            'key'       => env('AZURE_STORAGE_KEY'),
            'container' => env('AZURE_STORAGE_CONTAINER'),
            'url'       => env('AZURE_STORAGE_URL'),
            'prefix'    => null,
        ],
  1. 私のWebアプリケーションのアプリケーション設定にAZURE_STORAGE_CONTAINER(私のコンテナの名前)は、AZURE_STORAGE_NAME(私のストレージアカウントの名前)を加え、そしてAZURE_STORAGE_KEY(ストレージアカウントのデータに「アクセスキー」の下にあります)。
  2. ストレージアカウントを使用して(ローカルストレージを使用して)適切に両方のローカルdev内の私のイメージのsrc値を作成するために、私の見解では「」「ストレージ:: URL($ PAGE->画像)」「」を使用し、Azureの上で(。
  3. 私のプロジェクトの.gitignoreファイルを更新することによって、私のレポからローカルストレージデータを除外。(私のテスト画像はgitので追跡する必要はありません。)

やれやれ。私はまだそれはAzureのウェブアプリで働くローカルストレージを得ることが可能かどう学ぶことに興味が、この構成では、生産準備ソリューションに向かってブロックをつまずきことを私をleapfrogsよ。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=20072&siteId=1