所以我的S3结构如下:
Bucket
|
|--------/print-objects
|
|
/20190417
|
|
image-file.png
我需要检查/ 20190417“ date”密钥是否存在,如果不存在,请创建该密钥。
export function checkDateKeyExists(bucketName: string, key: string, dateKey: string) {
const s3 = new aws.S3({ params: { Bucket: bucketName, Delimiter: '/', Prefix: 'print-objects/' } });
const params: aws.S3.Types.GetObjectRequest = { Bucket: bucketName, Key: key }
s3.getObject(params, function(err, data) {
if (err) {
log.debug("Error:", err)
} else {
log.debug("Data:", data)
const s3DateKey = Object.keys(data).filter((dateKey) => dateKey.slice(0, 13) == 'print-objects')
log.error(s3DateKey)
}
})
我似乎在向下钻取嵌套日期键时遇到了麻烦,无法检查它是否存在。
我得到了以下data
:
Data:
{
AcceptRanges: 'bytes',
LastModified: 2019-07-04T18:30:12.000Z,
ContentLength: 0,
ETag: '"d41d8cd98f00b204e9800998ecf8427e"',
ContentType: 'application/x-directory',
Metadata: {},
Body: <Buffer >
} +0ms
当我返回Object.keys(data)
的内容时,我得到了一个元数据键数组(我认为这是针对print-objects
对象本身的),而不是嵌套在打印对象中的日期键。 / p>
[
'AcceptRanges',
'LastModified',
'ContentLength',
'ETag',
'ContentType',
'Metadata',
'Body'
] +1ms