RestoreExternalSnapshot()
This operation restores an external snapshot to a target collection. The restore runs asynchronously — use GetRestoreSnapshotState() to monitor progress.
func (c *Client) RestoreExternalSnapshot(ctx context.Context, opt RestoreExternalSnapshotOption, callOptions ...grpc.CallOption) (int64, error)
Request Syntax
option := milvusclient.NewRestoreExternalSnapshotOption(targetCollectionName, snapshotMetadataURI).
WithDbName(dbName).
WithExternalSpec(externalSpec).
WithRequestTimeout(timeout)
jobID, err := cli.RestoreExternalSnapshot(ctx, option)
PARAMETERS:
-
targetCollectionName (string)
The name of the target collection to restore into.
-
snapshotMetadataURI (string)
The URI of the snapshot metadata to restore.
BUILDER METHODS:
-
NewRestoreExternalSnapshotOption(targetCollectionName string, snapshotMetadataURI string)Creates a new option to restore an external snapshot.
-
WithDbName(dbName string)Sets the database name for the target collection.
-
WithExternalSpec(externalSpec string)Sets the external storage specification (e.g., custom endpoint credentials) used for the restore.
-
WithRequestTimeout(timeout time.Duration)Sets the timeout for the restore request. Default:
120 * time.Second.
RETURN TYPE:
int64, error
RETURNS:
The restore job ID on success. Use this ID with GetRestoreSnapshotState() to track the restore progress. Returns an error if the operation fails.
ERROR HANDLING:
-
error
Check
err != nilfor failure details.
Example
import (
"context"
"fmt"
"github.com/milvus-io/milvus/client/v3/milvusclient"
)
ctx, cancel := context.WithCancel(context.Background())
defer cancel()
milvusAddr := "127.0.0.1:19530"
cli, err := milvusclient.New(ctx, &milvusclient.ClientConfig{
Address: milvusAddr,
})
if err != nil {
// handle error
}
defer cli.Close(ctx)
jobID, err := cli.RestoreExternalSnapshot(ctx, milvusclient.NewRestoreExternalSnapshotOption("restored_collection", "s3://my-bucket/snapshots/backup/"))
if err != nil {
// handle error
}
fmt.Printf("Restore job started: %d\n", jobID)