我在 Dynamodb 中的对象大致如下所示:
{
userId: "GEFOeE8EsaWmq4NQ3oh7tbeVkLx1",
url: 'objectURL',
object: {}
}
当拥有对象的用户请求删除时,我有这段简单的代码用于删除对象。顺便说一下,这里的用户参数是一个解析的 JWT。
export async function deleteObject(user, url) {
let params = {
TableName: OBJECTS_TABLE,
Key: {
url: url,
},
ConditionExpression: `userId = :uid`,
ExpressionAttributeValues: {
":uid": {
S: user.sub
}
}
};
let deleteResult = await dynamoDb.delete(params).promise();
return deleteResult;
}
问题是它不起作用,我通过更改=
为<>
. 我只是得到这个:
ConditionalCheckFailedException: The conditional request failed
我确信解决问题并不难,但我几乎没有任何信息
问题:
- 为什么条件表达式失败?一切看起来都很好,它应该可以工作。对?
- 我怎样才能更好地调试这个问题?