【问题标题】:AWS S3 get object using URLAWS S3 使用 URL 获取对象
【发布时间】:2017-10-24 22:02:40
【问题描述】:

我有一组可能属于或不属于特定存储桶的 URL。这些不公开。

我正在使用 nodejs aws-sdk 来获取它们。

但是,getObject 函数需要单独的参数 Bucket 和 Key,它们已经在我的 URL 中。

有什么方法可以使用这个网址吗?

我尝试通过用/ 拆分URL 来提取密钥,并通过用. 拆分来获取存储桶。但问题是存储桶名称也可以有.,我不确定键名是否也可以有/。

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 aws-sdk aws-sdk-js


    【解决方案1】:

    amazon-s3-uri 库可以解析出 Amazon S3 URI:

    const AmazonS3URI = require('amazon-s3-uri')
    
    try {
      const uri = 'https://bucket.s3-aws-region.amazonaws.com/key'
      const { region, bucket, key } = AmazonS3URI(uri)
    } catch((err) => {
      console.warn(`${uri} is not a valid S3 uri`) // should not happen because `uri` is valid in that example 
    })
    

    【讨论】:

      【解决方案2】:

      使用这个模块parse-s3-url来设置getObject的参数。

       bucket.getObject( parseS3Url('https://s3.amazonaws.com/mybucket/mykey'), (err:any, data:any) =>{
          if (err) {
            // alert("Failed to retrieve an object: " + error);
          } else {
            console.log("Loaded " + data.ContentLength + " bytes");
            // do something with data.Body
          }
        });
      

      【讨论】:

        猜你喜欢
        • 2020-01-18
        • 1970-01-01
        • 2018-07-14
        • 2021-03-06
        • 2020-01-19
        • 2022-01-03
        • 2020-07-30
        • 1970-01-01
        • 2019-06-09
        相关资源
        最近更新 更多