微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用存储 API 将图像上传到 Supabase 存储

如何解决使用存储 API 将图像上传到 Supabase 存储

Supabase 很棒!!我正在尝试使用对 <SUPABASE_URL>/storage/v1/object/<BUCKET_NAME>/<IMAGE_NAME> 的 POST 请求将图像上传到公共存储桶。

困难的是我只有 base64 编码的图像字符串,我无法向上述端点发出成功请求。已经尝试了多次设置 Content-type 的迭代,但没有成功。

我正在尝试从 Appsmith 上传我的图像,该图像为图像提供了 base64 格式,我必须从此处点击上述端点。

请帮帮我。

解决方法

我很高兴能找到另一个像我一样的 Supabase 粉丝!

我听到了你的痛苦。您可以尝试使用 this 技术将 base 64 字符串转换为 blob 对象吗?

const byteCharacters = atob(b64Data);

const byteNumbers = new Array(byteCharacters.length);
for (let i = 0; i < byteCharacters.length; i++) {
    byteNumbers[i] = byteCharacters.charCodeAt(i);
}

const byteArray = new Uint8Array(byteNumbers);

const blob = new Blob([byteArray],{type: contentType});        

最后的 blob 变量是您可以用来上传到 Supabase 的变量。

另外,您是否考虑过使用 Supabase-js SDK?这将使您的生活更轻松,因为它们提供了更好的 API 来与 Supabase 交互。

你可以在这里获取 supabase-js 包: https://www.npmjs.com/package/@supabase/supabase-js

您可以在这里找到一些示例代码: https://supabase.io/docs/reference/javascript/storage-from-upload

就您而言,您可以执行以下操作来上传文件:

const { data,error } = await supabase
  .storage
  .from('avatars')
  .upload('public/sample.png',blob,{
    cacheControl: 3600,upsert: false
  })

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?