如何在 google 存储中创建文件夹?长生不老药

how to create a folder in google storage? Elixir

这是有效的,但只有文件是在根目录而不是文件夹中创建的

 {:ok, object} = GoogleApi.Storage.V1.Api.Objects.storage_objects_insert_simple(
      conn,
      bucket_id,
      "multipart",
      %{name: Path.basename(file_path)},
      file_path
    )

name 参数应该是 完整 文件夹加上要存储在您的存储桶中的文件名;您只发送 basename(file_path),这是上传的文件名。

一些提示:

  • 我说“文件夹”,尽管 Goolge 存储显示存储的对象就好像它们在文件夹中一样,它实际上只是一个键值对象存储
    • 你的代码应该设置文件的完整路径——不要让用户输入设置它
  • 注意 API 对 encoding of parameters 的期望,这通常由该库为您处理
    • 不幸的是 a bug 是在 v0.23 中引入的(并且至少存在于 v0.26 中),他们没有正确编码最终路径参数
  • 上传时,您需要在对象的元数据中发送正确的 mime_type,否则从浏览器下载它会导致它仅作为二进制文件发送