Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/amazon-s3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon s3 如何使用mongoDB Stitch获取AWS S3签名URL?_Amazon S3_Mongodb Stitch - Fatal编程技术网

Amazon s3 如何使用mongoDB Stitch获取AWS S3签名URL?

Amazon s3 如何使用mongoDB Stitch获取AWS S3签名URL?,amazon-s3,mongodb-stitch,Amazon S3,Mongodb Stitch,我试图从S3存储桶中检索一些文件,但是这些文件被设置为私有文件。我目前正在使用ListObjects检索我的bucket中的所有文件,但在结果集中,它不包括签名的url,并且由于文件是私有的,我无法在我的网站上显示它 我正在使用mongoDB Stitch连接到我的S3存储桶 这里是我检索bucket中所有文件的代码 const aws = this.client.getServiceClient(AwsServiceClient.factory, "TESTAPP"); const args

我试图从S3存储桶中检索一些文件,但是这些文件被设置为私有文件。我目前正在使用ListObjects检索我的bucket中的所有文件,但在结果集中,它不包括签名的url,并且由于文件是私有的,我无法在我的网站上显示它

我正在使用mongoDB Stitch连接到我的S3存储桶

这里是我检索bucket中所有文件的代码

const aws = this.client.getServiceClient(AwsServiceClient.factory, "TESTAPP");
const args = {
   Bucket: bucketName,
   Prefix: folderName
};

const request = new AwsRequest.Builder()
   .withService('s3')
   .withAction('ListObjects')
   .withArgs(args);

aws.execute(request.build())
    .then(result => {
        console.log(result);
    }
当我查看console.log时,我可以看到所有的文件信息,但由于该文件是一个私有文件,我尝试访问该文件,因此我收到一个错误,说我无权访问它


我是否需要再打一次电话来获取签名的url,或者是否可以一次获取所有url?

因此您有一些选择

  • 如果你公开展示这些图片,那么就在亚马逊上公开它们。如果你在亚马逊上关闭这些图片的权限列表选项,那么人们将需要确切的url来查看它,这样就不会像互联网上随机出现的人一样浏览你的照片。因此,除非它实际上是敏感数据,否则这个选项可能是好的


  • 您可以在Stitch sdk中使用GetObject方法。这将返回映像的base64版本。然后,您可以将其转换为图像或将base64直接嵌入
    src
    中。您可以粘贴准确的错误消息和用于检索图像的代码吗?我收到一个403错误(禁止)。文件在bucket中是私有的,我使用的url是
    https://s3.amazonaws.com/{bucket}/{key}
    key是我得到的结果变量的对象名。谢谢你的帮助。