mirror of
https://github.com/qdrant/qdrant.git
synced 2026-09-21 21:47:39 -05:00
Add optional last-modified timestamp to ListedFile and CachedFs FileInfo (#9803)
* Add optional last-modified timestamp to ListedFile and CachedFs FileInfo Filled where the listing backend exposes one: local filesystems (entry metadata) and object stores (ObjectMeta::last_modified). The uio-grpc backend reports None since the RPC does not carry mtimes. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Carry last-modified over the StorageRead ListFiles RPC Extend ListFilesEntry with an optional google.protobuf.Timestamp, fill it on the server from the listing metadata, and convert it back to SystemTime in the uio-grpc client. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * Update lib/common/io_bridge_object_store/src/source.rs Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Fix missing SystemTime import in io_bridge_object_store The CodeRabbit-suggested last_modified mapping used SystemTime::from without importing std::time::SystemTime, breaking compile and CI. Co-authored-by: Cursor <cursoragent@cursor.com> * Retrigger CI after flaky integration-tests-consensus timeout The compile fix is in; the prior run failed on an unrelated 30s timeout in test_collection_recovery, not on PR changes. Co-authored-by: Cursor <cursoragent@cursor.com> --------- Co-authored-by: Claude Fable 5 <noreply@anthropic.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> Co-authored-by: root <111755117+qdrant-cloud-bot@users.noreply.github.com> Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
co-authored by
Cursor
Claude Fable 5
coderabbitai[bot]
root
parent
e7340ed160
commit
5593bc5564
@@ -2780,6 +2780,10 @@ pub fn date_time_to_proto(date_time: DateTimePayloadType) -> prost_wkt_types::Ti
|
||||
naive_date_time_to_proto(date_time.0.naive_utc())
|
||||
}
|
||||
|
||||
pub fn system_time_to_proto(time: std::time::SystemTime) -> prost_wkt_types::Timestamp {
|
||||
naive_date_time_to_proto(chrono::DateTime::<chrono::Utc>::from(time).naive_utc())
|
||||
}
|
||||
|
||||
pub fn try_date_time_from_proto(
|
||||
date_time: prost_wkt_types::Timestamp,
|
||||
) -> Result<DateTimePayloadType, Status> {
|
||||
|
||||
@@ -2,6 +2,8 @@ syntax = "proto3";
|
||||
|
||||
package qdrant;
|
||||
|
||||
import "google/protobuf/timestamp.proto";
|
||||
|
||||
option csharp_namespace = "Qdrant.Client.Grpc";
|
||||
|
||||
// Shard-scoped raw I/O over on-disk collection storage.
|
||||
@@ -53,6 +55,8 @@ message FileExistsResponse {
|
||||
message ListFilesEntry {
|
||||
string path = 1;
|
||||
uint64 size = 2;
|
||||
// Last modification time, when the underlying storage exposes one.
|
||||
optional google.protobuf.Timestamp last_modified = 3;
|
||||
}
|
||||
|
||||
message ListFilesResponse {
|
||||
|
||||
@@ -16273,6 +16273,9 @@ pub struct ListFilesEntry {
|
||||
pub path: ::prost::alloc::string::String,
|
||||
#[prost(uint64, tag = "2")]
|
||||
pub size: u64,
|
||||
/// Last modification time, when the underlying storage exposes one.
|
||||
#[prost(message, optional, tag = "3")]
|
||||
pub last_modified: ::core::option::Option<::prost_wkt_types::Timestamp>,
|
||||
}
|
||||
#[derive(serde::Serialize)]
|
||||
#[derive(Clone, PartialEq, ::prost::Message)]
|
||||
|
||||
Reference in New Issue
Block a user