|
|
@@ -628,7 +628,6 @@ grpc::Status DatabaseGrpcImpl::UploadFile(
|
|
|
pb::UploadFileResponse* response
|
|
|
) {
|
|
|
pb::FileChunk chunk;
|
|
|
- std::string fileId;
|
|
|
std::vector<uint8_t> fileData;
|
|
|
pb::FileMetadata metadata;
|
|
|
|
|
|
@@ -647,15 +646,17 @@ grpc::Status DatabaseGrpcImpl::UploadFile(
|
|
|
info.mimeType = metadata.mime_type();
|
|
|
info.fileType = metadata.file_type();
|
|
|
info.relatedId = metadata.related_id();
|
|
|
+ info.isPublic = metadata.is_public();
|
|
|
for (const auto& [key, value] : metadata.metadata()) {
|
|
|
info.metadata[key] = value;
|
|
|
}
|
|
|
|
|
|
- fileId = files_.storeFile(fileData, info);
|
|
|
+ auto result = files_.storeFile(fileData, info);
|
|
|
|
|
|
- response->set_id(fileId);
|
|
|
- response->set_size(fileData.size());
|
|
|
- response->set_checksum(files_.getChecksum(fileId));
|
|
|
+ response->set_id(result.id);
|
|
|
+ response->set_size(result.size);
|
|
|
+ response->set_checksum(result.checksum);
|
|
|
+ response->set_deduplicated(result.deduplicated);
|
|
|
|
|
|
return grpc::Status::OK;
|
|
|
|
|
|
@@ -683,6 +684,10 @@ grpc::Status DatabaseGrpcImpl::DownloadFile(
|
|
|
meta->set_mime_type(info->mimeType);
|
|
|
meta->set_size(info->size);
|
|
|
meta->set_file_type(info->fileType);
|
|
|
+ meta->set_is_public(info->isPublic);
|
|
|
+ for (const auto& [key, value] : info->metadata) {
|
|
|
+ (*meta->mutable_metadata())[key] = value;
|
|
|
+ }
|
|
|
writer->Write(metadataChunk);
|
|
|
|
|
|
// Stream file data in chunks
|
|
|
@@ -731,6 +736,8 @@ grpc::Status DatabaseGrpcImpl::GetFileInfo(
|
|
|
response->set_related_id(info->relatedId);
|
|
|
response->set_checksum(info->checksum);
|
|
|
response->set_created_at(info->createdAt);
|
|
|
+ response->set_is_public(info->isPublic);
|
|
|
+ response->set_ref_count(files_.getRefCount(info->checksum));
|
|
|
for (const auto& [key, value] : info->metadata) {
|
|
|
(*response->mutable_metadata())[key] = value;
|
|
|
}
|
|
|
@@ -743,8 +750,11 @@ grpc::Status DatabaseGrpcImpl::ListFiles(
|
|
|
const pb::ListFilesRequest* request,
|
|
|
pb::ListFilesResponse* response
|
|
|
) {
|
|
|
- auto result = files_.listFiles(request->file_type(), request->related_id(),
|
|
|
- request->limit(), request->offset());
|
|
|
+ auto result = files_.listFiles(
|
|
|
+ request->file_type(), request->related_id(),
|
|
|
+ request->limit(), request->offset(),
|
|
|
+ request->checksum()
|
|
|
+ );
|
|
|
|
|
|
response->set_total_count(result.totalCount);
|
|
|
response->set_has_more(result.hasMore);
|
|
|
@@ -759,6 +769,7 @@ grpc::Status DatabaseGrpcImpl::ListFiles(
|
|
|
file->set_related_id(info.relatedId);
|
|
|
file->set_checksum(info.checksum);
|
|
|
file->set_created_at(info.createdAt);
|
|
|
+ file->set_is_public(info.isPublic);
|
|
|
}
|
|
|
|
|
|
return grpc::Status::OK;
|