如何将文件从我的本地存储上传到 S3?

How to upload file from my local storage into S3?

查看一些示例 Laravel 如何与 AWS S3 服务一起工作,我看到代码示例如下:

$path = $request->file('image')->store('images', 's3');

但是当我尝试从我的本地存储上传文件时:

   $adImageDestDirectory = '/public/' .  ‘subdirectory_path’;

  $path = Storage::get($adImageDestDirectory . $adImageItem->image)->store('images', 's3');

我收到错误:

Call to a member function store() on string

哪种方式有效?

谢谢!

您可以这样做以将文件存储到 s3

$file = $request->file('attachment');
$fileName = time() . $file->getClientOriginalName();
$filePath = 'uploads/' . $fileName;
Storage::disk('s3')->put($filePath, file_get_contents($file), 'public');
$urlPath = Storage::disk('s3')->url($filePath);

如果您需要将文件从本地存储上传到aws S3 bucket,那么您需要从本地复制文件:使用函数file_get_contents()

Storage::disk('s3')->put('filename.jpg', file_get_contents($adImageDestDirectory );