Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 28 additions & 0 deletions sdk-core/src/main/java/io/milvus/v2/client/MilvusClientV2.java
Original file line number Diff line number Diff line change
Expand Up @@ -1240,6 +1240,34 @@ public ListRefreshExternalCollectionJobsResp listRefreshExternalCollectionJobs(L
return rpcUtils.retry(() -> utilityService.listRefreshExternalCollectionJobs(this.getRpcStub(), request));
}

/**
* Add a file resource to Milvus.
*
* @param request add file resource request containing name and path
*/
public void addFileResource(AddFileResourceReq request) {
rpcUtils.retry(() -> utilityService.addFileResource(this.getRpcStub(), request));
}

/**
* Remove a file resource from Milvus.
*
* @param request remove file resource request containing name
*/
public void removeFileResource(RemoveFileResourceReq request) {
rpcUtils.retry(() -> utilityService.removeFileResource(this.getRpcStub(), request));
}

/**
* List all file resources in Milvus.
*
* @param request list file resources request
* @return ListFileResourcesResp containing the list of file resources
*/
public ListFileResourcesResp listFileResources(ListFileResourcesReq request) {
return rpcUtils.retry(() -> utilityService.listFileResources(this.getRpcStub(), request));
}

/**
* Optimize collection to adjust segment sizes for better query performance.
*
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -408,4 +408,61 @@ private io.milvus.v2.service.utility.response.RefreshExternalCollectionJobInfo c
.endTime(info.getEndTime())
.build();
}

public Void addFileResource(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub,
AddFileResourceReq request) {
if (StringUtils.isEmpty(request.getName())) {
throw new MilvusClientException(ErrorCode.INVALID_PARAMS, "File resource name cannot be null or empty");
}
if (StringUtils.isEmpty(request.getPath())) {
throw new MilvusClientException(ErrorCode.INVALID_PARAMS, "File resource path cannot be null or empty");
}
String title = String.format("AddFileResource name: '%s', path: '%s'", request.getName(), request.getPath());

AddFileResourceRequest grpcRequest = AddFileResourceRequest.newBuilder()
.setName(request.getName())
.setPath(request.getPath())
.build();
Comment thread
yhmo marked this conversation as resolved.

Status status = blockingStub.addFileResource(grpcRequest);
rpcUtils.handleResponse(title, status);
return null;
}

public Void removeFileResource(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub,
RemoveFileResourceReq request) {
if (StringUtils.isEmpty(request.getName())) {
throw new MilvusClientException(ErrorCode.INVALID_PARAMS, "File resource name cannot be null or empty");
}
String title = String.format("RemoveFileResource name: '%s'", request.getName());

RemoveFileResourceRequest grpcRequest = RemoveFileResourceRequest.newBuilder()
.setName(request.getName())
Comment thread
yhmo marked this conversation as resolved.
.build();

Status status = blockingStub.removeFileResource(grpcRequest);
rpcUtils.handleResponse(title, status);
return null;
}

public ListFileResourcesResp listFileResources(MilvusServiceGrpc.MilvusServiceBlockingStub blockingStub,
ListFileResourcesReq request) {
String title = "ListFileResources";

ListFileResourcesRequest grpcRequest = ListFileResourcesRequest.newBuilder().build();

ListFileResourcesResponse response = blockingStub.listFileResources(grpcRequest);
rpcUtils.handleResponse(title, response.getStatus());

List<io.milvus.v2.service.utility.response.FileResourceInfo> resources = new ArrayList<>();
for (io.milvus.grpc.FileResourceInfo info : response.getResourcesList()) {
resources.add(io.milvus.v2.service.utility.response.FileResourceInfo.builder()
.name(info.getName())
.path(info.getPath())
.build());
}
return ListFileResourcesResp.builder()
.resources(resources)
.build();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.milvus.v2.service.utility.request;

public class AddFileResourceReq {
private final String name;
private final String path;

private AddFileResourceReq(AddFileResourceReqBuilder builder) {
this.name = builder.name;
this.path = builder.path;
}

public static AddFileResourceReqBuilder builder() {
return new AddFileResourceReqBuilder();
}

public String getName() {
return name;
}

public String getPath() {
return path;
}

@Override
public String toString() {
return "AddFileResourceReq{" +
"name='" + name + '\'' +
", path='" + path + '\'' +
'}';
}

public static class AddFileResourceReqBuilder {
private String name;
private String path;

public AddFileResourceReqBuilder name(String name) {
this.name = name;
return this;
}

public AddFileResourceReqBuilder path(String path) {
this.path = path;
return this;
}

public AddFileResourceReq build() {
return new AddFileResourceReq(this);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.milvus.v2.service.utility.request;

public class ListFileResourcesReq {

private ListFileResourcesReq(ListFileResourcesReqBuilder builder) {
}

public static ListFileResourcesReqBuilder builder() {
return new ListFileResourcesReqBuilder();
}

@Override
public String toString() {
return "ListFileResourcesReq{}";
}

public static class ListFileResourcesReqBuilder {

public ListFileResourcesReq build() {
return new ListFileResourcesReq(this);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.milvus.v2.service.utility.request;

public class RemoveFileResourceReq {
private final String name;

private RemoveFileResourceReq(RemoveFileResourceReqBuilder builder) {
this.name = builder.name;
}

public static RemoveFileResourceReqBuilder builder() {
return new RemoveFileResourceReqBuilder();
}

public String getName() {
return name;
}

@Override
public String toString() {
return "RemoveFileResourceReq{" +
"name='" + name + '\'' +
'}';
}

public static class RemoveFileResourceReqBuilder {
private String name;

public RemoveFileResourceReqBuilder name(String name) {
this.name = name;
return this;
}

public RemoveFileResourceReq build() {
return new RemoveFileResourceReq(this);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.milvus.v2.service.utility.response;

public class FileResourceInfo {
private final String name;
private final String path;

private FileResourceInfo(FileResourceInfoBuilder builder) {
this.name = builder.name;
this.path = builder.path;
}

public static FileResourceInfoBuilder builder() {
return new FileResourceInfoBuilder();
}

public String getName() {
return name;
}

public String getPath() {
return path;
}

@Override
public String toString() {
return "FileResourceInfo{" +
"name='" + name + '\'' +
", path='" + path + '\'' +
'}';
}

public static class FileResourceInfoBuilder {
private String name;
private String path;

public FileResourceInfoBuilder name(String name) {
this.name = name;
return this;
}

public FileResourceInfoBuilder path(String path) {
this.path = path;
return this;
}

public FileResourceInfo build() {
return new FileResourceInfo(this);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/

package io.milvus.v2.service.utility.response;

import java.util.List;

public class ListFileResourcesResp {
private final List<FileResourceInfo> resources;

private ListFileResourcesResp(ListFileResourcesRespBuilder builder) {
this.resources = builder.resources;
}

public static ListFileResourcesRespBuilder builder() {
return new ListFileResourcesRespBuilder();
}

public List<FileResourceInfo> getResources() {
return resources;
}

@Override
public String toString() {
return "ListFileResourcesResp{" +
"resources=" + resources +
'}';
}

public static class ListFileResourcesRespBuilder {
private List<FileResourceInfo> resources;

public ListFileResourcesRespBuilder resources(List<FileResourceInfo> resources) {
this.resources = resources;
return this;
}

public ListFileResourcesResp build() {
return new ListFileResourcesResp(this);
}
}
}
Loading
Loading