Python 中操作 gridfs
时间: 2023-11-19 07:58:05 浏览: 61
GridFS 是 MongoDB 用于存储大文件的一种机制,它将大的文件分割成若干小的块(chunk)进行存储,这些小的块可以分布在 MongoDB 中的不同的 collection 中。在 Python 中,我们可以使用 pymongo 库来操作 GridFS。
首先,我们需要连接 MongoDB 数据库。假设我们已经完成了连接,现在我们可以通过 pymongo 中的 GridFS 类来获取 GridFS 对象:
```python
import pymongo
from pymongo import MongoClient
from gridfs import GridFS
client = MongoClient('mongodb://localhost:27017/')
db = client['mydatabase']
fs = GridFS(db)
```
通过 `fs` 对象,我们可以进行大文件的存储和读取操作。
下面是一些常用的操作:
1. 存储文件:
```python
with open('/path/to/file', 'rb') as f:
file_id = fs.put(f, filename='my_file')
```
这个操作会将 `/path/to/file` 中的文件存储到 GridFS 中,返回的 `file_id` 是这个文件在 GridFS 中的唯一标识。`filename` 参数指定了存储的文件名。
2. 获取文件:
```python
file = fs.get(file_id)
```
这个操作会根据 `file_id` 获取 GridFS 中的文件对象。我们可以使用这个文件对象来读取文件的内容。
3. 删除文件:
```python
fs.delete(file_id)
```
这个操作可以删除指定 `file_id` 的文件。
4. 列出所有文件:
```python
for file in fs.find():
print(file.filename)
```
这个操作可以列出 GridFS 中所有的文件。