首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >响应本机+放大S3示例

响应本机+放大S3示例
EN

Stack Overflow用户
提问于 2018-09-29 14:22:06
回答 2查看 848关注 0票数 4

我正在寻找一个完整的示例,说明如何在成功地将文件名发送到S3后返回文件名。

目前,我有这样的情况:

代码语言:javascript
复制
uploadImageAsync = async (pickerResult) => {
    try {
      this.setState({
        uploading: true,
      })

      if (!pickerResult.cancelled) {
        const response = await fetch(pickerResult.uri);
        const blob = await response.blob();
        Storage.put(fileName, blob)
          .then(result => console.log(result))
          .catch(err => console.log(err))
      }
    } finally {
      this.setState({
        uploading: false,
      })
    }
  }

我的返回结果是我创建的文件名。我想在创建S3文件名之后返回它。这个是可能的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-10-01 18:21:08

您可以对图像执行一个get()调用以获得一个签名的url。

代码语言:javascript
复制
Storage.put('profile-picture.jpeg', blob)
  .then(result => {
    Storage.get('profile-picture.jpeg')
      .then(result => {
        console.log(result);                    
      })
      .catch(err => {
        console.error(err);
      });
  })
  .catch(err => {
    console.error(err);
  });
票数 3
EN

Stack Overflow用户

发布于 2018-10-01 18:14:20

因此,您实际上不需要在执行put之后将S3文件的密钥返回给您,因为它总是有一个基于您为"put“提供的第三个参数的可预测键。

  • 公共级/省略第三部分:" Public /yourFileName“
  • 受保护级别/{级:‘受保护’}:“受保护/IdentityId/文件名”
  • 私有级别/{level:‘私有’}:“私有/IdentityId/fileName”

put函数自动为您配置文件名的前缀。但是,如果您出于任何原因需要"IdentityId“部分,您可以得到这样的部分:

代码语言:javascript
复制
Auth.currentCredentials().then(user => user.identityId)
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52569268

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档