DynamoDBMapper提供了从表中读取一个项目的不同方法:
是否有推荐,哪些可以使用?在快速测试中,以下两个代码段为具有主键= hash和range key = date的表返回相同的"MyEntry"项,而查询方法大约快10%.
加载
public MyEntry getEntryForDay(final Integer hash, final LocalDate date) {
return mapper.load(MyEntry.class, hash, date);
}
Run Code Online (Sandbox Code Playgroud)
询问
public MyEntry getEntryForDay(final Integer hash, final LocalDate date) {
final MyEntry hashKeyValues = new MyEntry ();
hashKeyValues.setHash(hash);
final Condition rangeKeyCondition = new Condition()//
.withComparisonOperator(ComparisonOperator.EQ.toString())//
.withAttributeValueList(new AttributeValue().withS(new LocalDateMarshaller().marshall(date)));
final DynamoDBQueryExpression<MyEntry> queryExpression = new DynamoDBQueryExpression<MyEntry>()//
.withHashKeyValues(hashKeyValues)//
.withRangeKeyCondition("date", rangeKeyCondition)//
.withLimit(1);
final List<MyEntry> storedEntries = mapper
.query(MyEntry.class, queryExpression);
if (storedEntries.size() == 0) {
return null;
}
return storedEntries.get(0);
}
Run Code Online (Sandbox Code Playgroud) 我想在AWS S3存储桶中设置以下事件/通知配置:收到文件(s3:ObjectCreated:*)后,将触发两个目标:
当我尝试通过AWS控制台设置配置时,我收到以下错误消息:
Configurations overlap. Configurations on the same bucket cannot share a common event type. : s3:ObjectCreated:*, s3:ObjectCreated:*
Run Code Online (Sandbox Code Playgroud)
我尝试按照用户指南的建议通过AWS SDK(Java)设置配置,但结果类似:
Caught an AmazonServiceException, which means your request made it to Amazon S3, but was rejected with an error response for some reason.
Error Message: Configurations overlap. Configurations on the same bucket cannot share a common event type. (Service: Amazon S3; Status Code: 400; Error Code: InvalidArgument; Request ID: A0E8738522EA218F)
HTTP Status Code: 400
AWS Error Code: InvalidArgument …Run Code Online (Sandbox Code Playgroud) 我(我想)理解S3作为基于密钥的存储的概念,其中密钥实际上是文件的路径.因此,没有文件夹的概念.但是怎么可能在S3中创建空文件夹呢?另外,我的印象是,空文件夹只存在很短的时间(几个小时),然后自动消失.
我有一个启用了版本控制的 S3 存储桶。可以取消删除文件,但如何取消删除文件夹?
我知道,S3 没有文件夹……但是我怎样才能取消删除通用前缀?是否有可能以递归方式取消删除文件?