> ## Documentation Index
> Fetch the complete documentation index at: https://docs.textin.com/llms.txt
> Use this file to discover all available pages before exploring further.

# MinIO

> 配置 MinIO 对象存储数据源

## MinIO

[MinIO](https://min-io.cn/product/overview) 是一个高性能的对象存储服务，完全兼容 S3 协议。

### 如何获取鉴权参数

1. 登录 MinIO 控制台
2. 在左边栏选择 `Bucket` 选项，点击右上角的 `Create Bucket` 按钮创建存储桶
   ![创建Bucket](https://static.textin.com/docs/images/pipeline/minio-bucket-create.png)
3. 在左边栏选择 `Policies` 选项，创建权限策略
   ![创建权限策略](https://static.textin.com/docs/images/pipeline/minio-user-create-auth.png)

   策略详情如下：

   ```json theme={null}
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Action": [
                    "s3:ListBucket",
                    "s3:GetObject"
                ],
                "Resource": [
                    "arn:aws:s3:::*"
                ]
            }
        ]
    }
   ```
4. 获取访问密钥：
   * 在左边栏选择 `Identity` - `Users` 选项，创建子用户
     ![创建用户](https://static.textin.com/docs/images/pipeline/minio-user-create.png)
   * 在用户详情中的`Policies`选项卡中为用户授予上面新建的策略
     ![授予权限](https://static.textin.com/docs/images/pipeline/minio-user-authorize.png)
   * 为用户创建 AccessKey，获取 `AccessKey ID` 和 `AccessKey Secret`
     ![创建AccessKey](https://static.textin.com/docs/images/pipeline/minio-create-accesskey.png)
5. 获取 MinIO 端点：
   请自行获取`MinIO`服务对应端点

### 配置示例

```python theme={null}
source = S3Source(
    endpoint='https://your-minio-endpoint', # 自行设置服务端点
    access_key='your-access-key-id',
    secret_key='your-secret-access-key',
    bucket='your-bucket-name',
    prefix='',
    region='us-east-1' # 固定此值即可
)
```

### 使用示例

```python theme={null}
from xparse_client import S3Source, Pipeline

source = S3Source(
    endpoint='https://your-minio-endpoint', # 自行设置服务端点
    access_key='your-access-key-id',
    secret_key='your-secret-access-key',
    bucket='your-bucket-name',
    prefix='',
    region='us-east-1'
)

# ... 其他配置

pipeline = Pipeline(
    source=source,
    # ...其他配置
)
pipeline.run()
```
