8

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

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

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

有什么办法可以使用网址吗?

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

4

2 回答 2

12

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 
})
于 2017-05-25T00:27:07.557 回答
0

使用此模块 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
    }
  });
于 2021-10-18T12:10:20.870 回答