from.update()

用一个新的文件替换指定路径下的一个现有文件。

const avatarFile = event.target.files[0]
const { data, error } = await supabase
  .storage
  .from('avatars')
  .update('public/avatar1.png', avatarFile, {
    cacheControl: '3600',
    upsert: false
  })

参数

  • path required string

    相对文件路径。应该是`folder/subfolder/filename.png`的格式。在尝试上传之前,该bucket必须已经存在。
  • fileBody required ArrayBuffer | ArrayBufferView | Blob | Buffer | File | FormData | ReadableStream | ReadableStream | URLSearchParams | string

    要存储在bucket中的文件的主体。
  • 文件选项 optional FileOptions

    请求头
    cacheControl the `Cache-Control: max-age=` seconds value. | string
    contentType 'Content-Type', 如果使用的'fileBody'既不是'Blob',也不是'File'或'FormData',则应指定该参数,否则将默认为'text/plain'。字符集=UTF-8 '。 | string
    upsert 是否执行更新插入。 | boolean

提示

  • 所需的策略权限:
    • buckets 权限: none
    • objects 权限: update and select 对于React Native来说,使用 Blob, FileFormData都无法达到预期效果。使用base64文件数据中 ArrayBuffer来代替来更新文件,见下面的例子。

例子

更新文件

const avatarFile = event.target.files[0]
const { data, error } = await supabase
  .storage
  .from('avatars')
  .update('public/avatar1.png', avatarFile, {
    cacheControl: '3600',
    upsert: false
  })

使用base64文件数据中的 ArrayBuffer更新文件

import {decode} from 'base64-arraybuffer'

const { data, error } = await supabase
  .storage
  .from('avatars')
  .update('public/avatar1.png', decode('base64FileData'), {
    contentType: 'image/png'
  })

results matching ""

    No results matching ""