存储管理器
本页面描述了使用StorageManager
类的存储示例。存储示例包括:
StorageManager
支持 HTTP(S)、S3、Google Cloud Storage、Azure 和文件系统文件夹。
文件操作
下载文件
要从存储下载一个ZIP文件到global
缓存上下文,使用StorageManager.get_local_copy()
类方法,并将目标位置指定为remote_url
参数:
from clearml import StorageManager
StorageManager.get_local_copy(remote_url="s3://MyBucket/MyFolder/file.zip")
Zip 和 tar.gz 文件将自动解压到缓存中。这可以通过 extract_archive
标志来控制。
要将文件下载到缓存中的特定上下文,请将上下文的名称指定为cache_context
参数:
StorageManager.get_local_copy(remote_url="s3://MyBucket/MyFolder/file.ext", cache_context="test")
要下载非压缩文件,请将extract_archive
参数设置为False
。
StorageManager.get_local_copy(remote_url="s3://MyBucket/MyFolder/file.ext", extract_archive=False)
默认情况下,StorageManager
每下载5MB就会向控制台报告其下载进度。你可以使用
StorageManager.set_report_download_chunk_size()
类方法来更改此设置,并指定以MB为单位的块大小(Azure和GCP存储不支持)。
StorageManager.set_report_download_chunk_size(chunk_size_mb=10)
上传文件
要将文件上传到存储,请使用StorageManager.upload_file()
类方法。指定本地文件的完整路径作为local_file
参数,并指定远程URL作为remote_url
参数。
StorageManager.upload_file(
local_file="/mnt/data/also_file.ext", remote_url="s3://MyBucket/MyFolder/also_file.ext"
)
使用retries
参数设置文件上传失败时应重试的次数。
默认情况下,StorageManager
每上传5MB就会向控制台报告其上传进度。你可以使用
StorageManager.set_report_upload_chunk_size()
类方法来更改此设置,并指定以MB为单位的块大小(Azure和GCP存储不支持)。
StorageManager.set_report_upload_chunk_size(chunk_size_mb=10)
使用文件夹
下载文件夹
使用StorageManager.download_folder()
类方法将文件夹下载到本地机器。将远程存储位置指定为remote_url
参数,将目标本地位置指定为local_folder
参数。
StorageManager.download_folder(remote_url="s3://bucket/", local_folder="/folder/")
此方法递归下载远程文件夹,保持远程存储中的子文件夹结构。
例如:如果你有一个远程文件 s3://bucket/sub/file.ext
,那么
StorageManager.download_folder(remote_url="s3://bucket/", local_file="/folder/")
将会创建 /folder/sub/file.ext
。
您可以输入match_wildcard
,以便仅下载与通配符匹配的文件。
上传文件夹
使用StorageManager.upload_folder()
类方法将本地文件夹上传到远程存储。指定要上传的本地文件夹作为local_folder
参数,并将目标远程位置作为remote_url
参数。
StorageManager.upload_folder(local_file="/LocalFolder", remote_url="s3://MyBucket/MyFolder")
此方法将本地文件夹递归上传到远程存储,保持本地存储中的子文件夹结构。
例如:如果你有一个本地文件 /LocalFolder/sub/file.ext
,那么 StorageManager.upload_folder(local_file="/LocalFolder", remote_url="s3://MyBucket/MyFolder")
将会创建 s3://bucket/sub/file.ext
。
使用retries
参数设置文件夹中每个文件在上传失败时的重试次数。如果某些文件上传失败,未完成的文件夹将保留在目标位置,其中包含已成功上传的文件。
您可以输入match_wildcard
,以便仅上传与通配符匹配的文件。
设置缓存限制
要设置缓存文件数量的限制,请使用StorageManager.set_cache_file_limit()
类方法,并将cache_file_limit
参数指定为最大文件数。这不会限制缓存大小,只会限制文件数量。
new_cache_limit = StorageManager.set_cache_file_limit(cache_file_limit=100)