【问题标题】:Unable to get custom metadata from S3 Bucket with Amplify ReactJs无法使用 Amplify ReactJs 从 S3 存储桶获取自定义元数据
【发布时间】:2019-08-02 20:06:43
【问题描述】:

在我的 ReactJS 放大网站中,我想获取我的 S3 存储桶项目并获取元数据。我尝试了以下代码,结果得到了 blank 元数据:

   s3.listObjects(params, function(err,data){
      if(err){
        console.log("There was an error getting bucket contents:", err);
      }
      else{
      var bucketContents = data.Contents;
      console.log(JSON.stringify(bucketContents));
      this.setState(state => {
        return { s3Data: bucketContents };
      });

      // get meta data
      for (var i = 0; i < bucketContents.length; i++) {
        var urlParams = { Bucket: bucketName, Key: bucketContents[i].Key };
        imageTitles.push(bucketContents[i].Key);
        s3.headObject(
          {
              Bucket : bucketName,
              Key: bucketContents[i].Key
          },
          function(err,data){
            if(err){
              console.log(err.message);
            }
            else{
              console.log("HEAD RESULTS:");
              console.log(JSON.stringify(data));
            }
          });

我有一个带有 2 个自定义标签的 s3 存储桶。在 s3 存储桶中,我为这些标签添加了以下 CORS 策略:

我使用 amplify cli 运行了 amplify pull 来更新。但是,我在我的代码本地的 CORS 策略中没有看到它。

为了有用,我尝试手动将它添加到文件中。还是不行。

为什么会发生这种情况,如何填充元数据?

【问题讨论】:

标签: javascript reactjs amazon-s3 metadata


【解决方案1】:

我可以在启用 CORS 标头后检索元数据,如下所述:https://github.com/aws/aws-sdk-js/issues/232

export const get = (filename, level) => {
  /*First enable CORS headers for the metadata you want to retrieve. Manual setup: 
    S3 console > select bucket > Click on Permissions > CORS Configuration > Add x-amz-meta-* keys:
    <ExposeHeader>x-amz-meta-audience</ExposeHeader>
    <ExposeHeader>x-amz-meta-location</ExposeHeader>
  */
  Storage.get(filename, {
    level,
    download: true 
  })
    .then(res => {
      console.log(res);
    })
    .catch(err => console.log(err));
};

【讨论】:

    猜你喜欢
    • 2022-01-13
    • 2022-01-03
    • 2017-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-11
    • 2012-09-16
    相关资源
    最近更新 更多