4 个版本
0.0.3 | 2023年5月7日 |
---|---|
0.0.2 | 2023年4月23日 |
0.0.1 | 2023年4月14日 |
0.0.0 | 2023年4月8日 |
#14 in #local-filesystem
27 每月下载量
100KB
2.5K SLoC
湖流
湖流是一个与对象存储(如S3)交互的工具。它从头开始使用Rust构建,并提供通过JS/WASM访问Python和网页API的能力。
湖流的理念是创建一个高性能、面向未来的数据工具,能够适应新的(由AI驱动的)网络和使用模式。这包括客户端和服务模式的工作能力,以及模块化设计以允许网络上的计算功能。
短期内,重点是实现基本功能,如列出、复制和删除。
当前版本(0.0.3)启用
- 在S3存储桶或本地文件系统中列出和搜索项
- 按名称、大小和修改时间过滤
- 从本地文件系统或S3存储桶获取项的内容
先决条件
- Python或Rust
- 可选:具有有效访问密钥和秘密密钥的S3账户
安装
湖流可以通过Python(API)或直接通过Rust(CLI)使用。基于浏览器的(以本地优先)版本将在短期内加入路线图。
Python(API)
只有Linux和MacOS的wheel预编译。Windows版本很快就会跟上来。
pip install lakestream
Rust(CLI)
克隆仓库并使用Cargo编译项目
git clone https://github.com/serverlessnext/lakestream.git
cd lakestream
cargo build --release
然后,将二进制文件从./target/release/lakestream复制到您的本地路径。
使用方法
快速入门
列出
# for s3://buckets: AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY must be set export AWS_ACCESS_KEY_ID=your_access_key export AWS_SECRET_ACCESS_KEY=your_secret_key export AWS_REGION=us-east-1 # optional
# Find all files in the "reports" directory, with names containing "2023" and # modified within the last 30 days, in a given S3 bucket. lakestream ls s3://bucket-name/reports/ --name "*2023*" --mtime "-30D # Find all files in the current directory, larger than 100 MB and modified # within the last 5 days. lakestream ls . --size "+100M" --mtime "-5D" # Find all files larger than 1 megabyte (MB) in a given S3 Bucket lakestream ls s3://bucket-name/ --size "+1M" --recursive # Find all files modified more than 1 hour ago, recursively lakestream ls . --mtime "+1h" --recursive
更多 列出 示例 这里。
请求
# print file contents from local file to stdout lakestream -X GET README.rst # write file contents from S3 to local file lakestream -X GET s3://bucket-name/100MB.bin > 100MB.bin
更多 请求 示例 这里。
Python也可以用作CLI。参数与Rust库一一映射。
# Python python -m lakestream ls ./ # Rust lakestream ls ./
Python API
import lakestream client = lakestream.Client() # Define a filter dictionary filter_dict = { "name": "example.txt", "size": "5", "mtime": "1D", } # List the contents of a storage location with the filter result = client.list("s3://your-bucket", recursive=True, filter_dict=filter_dict) print(result)
Python API 文档 这里。
贡献
欢迎为湖流项目做出贡献。请在GitHub仓库上打开问题或提交拉取请求。
许可证
湖流在MIT许可证下发布。有关详细信息,请参阅LICENSE。
链接
依赖项
~6–22MB
~347K SLoC