【问题标题】:Laravel 6 create a JSON from array and store to S3Laravel 6 从数组创建 JSON 并存储到 S3
【发布时间】:2020-03-14 16:52:21
【问题描述】:

我得到了一个像下面这样的数组

data: {
  mobiles: {
   samsung: [
      {
        id: 1,
        name: "Samsung Galaxy A20s",
        launched: "23rd September 2019",
        os: "Android 9 Pie"
      },
      {
        id: 1,
        name: "Samsung Galaxy A10s",
        launched: "12th August 2019",
        os: "Android 9 Pie"
      },
      {
       ....
      }
  ]
 }
}

我想将此数据作为.json 文件上传到Amazon S3 存储桶。

PS:我知道我可以使用json_encodefile_put_contents创建一个json文件,然后先存储到本地存储文件夹然后将该文件上传到S3,但我想知道我是否可以直接上传到s3而不创建我本地的一个文件。帮帮我。谢谢。

【问题讨论】:

  • Laravel 的 filesystem 抽象确实支持 S3
  • 我知道Storage::disk('s3')->put('files/mobiles.json', $fileContents);。如果我输入$fileContents=json_encode($data, JSON_PRETTY_PRINT); 会起作用吗?
  • 应该。你试过了吗?
  • 没有文件输入,我正在从我的数据库数据中生成 json。
  • put 不需要文件输入。它只需要文件数据和目标文件名

标签: json laravel amazon-web-services amazon-s3 file-upload


【解决方案1】:

只要传递你的数组就可以说 $data 像这样:

$fileName = $uuid . '-data.json'; // if you want a unique filename create a uuid
$path = "if_you_want_it_in_folder/$fileName";
Storage::disk('s3')->put($path, json_encode($data));

// Now just save the path so you can access the file later
$myModel->data_key = $path;
$myModel->save();

【讨论】:

    猜你喜欢
    • 2017-02-26
    • 2021-03-05
    • 1970-01-01
    • 1970-01-01
    • 2018-08-25
    • 2018-07-25
    • 2020-06-03
    • 1970-01-01
    • 2016-09-10
    相关资源
    最近更新 更多