将文件从 Laravel 上传到 azure blob 存储

brp*_*rov 4 azure inertiajs laravel azure-blob-storage

我接受了一项任务,用 Vue.js(惯性)维护 Laravel 项目(对两者都不是很有经验)。现在我们需要将主机切换到Azure,而我被困在文件存储上。具体来说,我不确定如何将文件从 Laravel 上传到 Blob。我已经在使用https://github.com/matthewbdaly/laravel-azure-storage这是连接驱动程序的便捷方法。

我的驱动程序在 filesystem.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,
        ],
Run Code Online (Sandbox Code Playgroud)

我的控制器:

$url = request()->file->store('azure');
Run Code Online (Sandbox Code Playgroud)

请帮忙!

Jim*_* Xu 6

根据我的测试,我们应该使用双引号来扩展.evn.

例如

  1. 将其添加到.env文件中
AZURE_STORAGE_NAME=<account name>
AZURE_STORAGE_KEY="<account key>"
AZURE_STORAGE_CONTAINER=
AZURE_STORAGE_URL=https://<account name>.blob.core.windows.net/
Run Code Online (Sandbox Code Playgroud)
  1. 将其添加到disks以下部分config/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,
        ],
Run Code Online (Sandbox Code Playgroud)
  1. 上传代码
  public function fileUpload(Request $req){
        $req->validate([
        'file' => 'required|mimes:csv,txt,xlx,xls,pdf|max:2048'
        ]);

      

        if($req->file()) {
            $fileName = time().'_'.$req->file->getClientOriginalName();
            // save file to azure blob virtual directory uplaods in your container
            $filePath = $req->file('file')->storeAs('uploads/', $fileName, 'azure');

            return back()
            ->with('success','File has been uploaded.')

        }
   }
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述