node.js - S3如何查找对象是否具有预签名的URL?
问题描述
学习 S3 我知道如何生成预签名 URL:
const aws = require('aws-sdk')
const s3 = new aws.S3()
aws.config.update({
accessKeyId: 'id-omitted',
secretAccessKey: 'key-omitted'
})
const myBucket = 'foo'
const myKey = 'bar.png'
const signedUrlExpireSeconds = 60 * 5
const url = s3.getSignedUrl('getObject', {
Bucket: myBucket,
Key: myKey,
Expires: signedUrlExpireSeconds
})
console.log(`Presigned URL: ${url}`)
通过阅读文档,我可以检索存储桶中的内容,headObject
但我已经测试过尝试查找对象是否已经具有预签名 URL:
第一次尝试:
let signedUrl = await s3.validSignedURL('getObject', params).promise()
console.log(`Signed URL: ${signedUrl}`)
第二次尝试:
await s3.getObject(params, (err, data) => {
if (err) console.log(err)
return data.Body.toString('utf-8')
})
第三次尝试:
let test = await s3.headObject(params).promise()
console.log(`${test}`)
而我的能力不足。我知道在创建预签名 URL 时可以创建文件或记录到文件中,但我认为这将是一个 hack。有没有办法在节点中检查一个对象,看看它是否有一个为它创建的预签名 URL?我不想在仪表板中执行此操作,我正在寻找一种仅在终端/脚本中执行此操作的方法。浏览标签并查询谷歌我没有找到任何运气
参考:
解决方案
有没有办法在节点中检查一个对象,看看它是否有一个为它创建的预签名 URL?
简短的回答:没有
长答案:没有关于存储在对象上的签名 url 或任何已创建 url 列表的信息。您甚至可以在客户端完全创建一个签名的 url,而无需调用任何服务
推荐阅读
- python - 我想了解以下程序的递归逻辑以确定如何计算输出
- python - 根据边缘查找轮廓
- javascript - 在表格内插入地图结果
- javascript - 无法在 React-Native 应用程序上使用 ActivityIndicator 创建覆盖
- firebase-analytics - 您可以在未安装 Google Play 服务的情况下使用 Firebase Analytics 吗?
- jquery - Jquery 计数器无法正常工作,显示错误的日期
- java - 无法将三个日期时间解析为特定格式
- node.js - 创建 React App - 生成单个文件
- javascript - Cypress.io:单击随机元素并获取其文本的功能
- r - 根据 R 中的关联类型为热图着色