跳到主要内容

upload_file_to_volume()

此操作将指定源路径下的本地文件上传至指定托管卷内的目标文件路径。

Notes

此功能仅适用于托管卷。外部卷为只读。

请求语法​

python
upload_file_to_volume(
source_file_path: str,
target_volume_path: str,
upload_concurrency: int = 5,
max_retries: int = 5,
retry_interval: float = 5.0,
progress_callback: Callable[[UploadProgress], None] | None = None,
part_size: int = 0,
) -> dict

参数:

  • source_file_path (str) -
    [必需]
    待上传的本地文件或目录路径。

  • target_volume_path (str) -
    [必需]
    Zilliz Cloud 卷中的目标路径。

  • upload_concurrency (int) -
    该值默认为 5。
    可并发上传的最大文件数。

  • max_retries (int) -
    该值默认为 5。
    每个文件的最大上传尝试次数。

  • retry_interval (float) -
    该值默认为 5.0。
    两次上传尝试之间的间隔时间(秒)。

  • progress_callback (Callable[[UploadProgress], None] | None) -
    该值默认为 None。
    用于接收上传进度快照的回调函数。

  • part_size (int) -
    该值默认为 0。
    分片上传的分片大小(字节)。使用 0 可自动选择合适的大小。

返回类型:

dict

返回:

包含 volumeName、volume_name 和上传目标路径的字典。

异常:

  • MilvusException
    当服务器拒绝请求或 RPC 失败时抛出。请查看服务器错误消息以了解确切的失败详情。

示例​

以下示例演示了 upload_file_to_volume 的用法。

python
from pymilvus.bulk_writer import VolumeFileManager, VolumeManager

manager = VolumeManager(cloud_endpoint="https://api.cloud.zilliz.com", api_key="YOUR_API_KEY")
manager.create_volume(project_id="proj-xxxx", region_id="aws-us-west-2", volume_name="book-volume", volume_type="EXTERNAL")
manager.describe_volume("book-volume")
manager.list_volumes(project_id="proj-xxxx", volume_type="EXTERNAL")

file_manager = VolumeFileManager(cloud_endpoint="https://api.cloud.zilliz.com", api_key="YOUR_API_KEY", volume_name="book-volume")
file_manager.upload_file_to_volume(source_file_path="./data/books.parquet", target_volume_path="datasets/books/books.parquet", upload_concurrency=4)