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 '。 | stringupsert
是否执行更新插入。 | boolean
提示
- 所需的策略权限:
buckets
权限: noneobjects
权限:update
andselect
对于React Native来说,使用Blob
,File
或FormData
都无法达到预期效果。使用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'
})