minio/sio进行加解密文件

本文介绍了一个使用Go语言实现的简单程序,该程序利用Scrypt库生成加密密钥,并通过sio库对ZIP文件进行加密及解密。示例中,程序尝试对名为aa.zip的文件进行读取,并将其内容解密到另一个ZIP文件bb.zip中。
package main

import (
   "fmt"
   "github.com/minio/sio"
   "golang.org/x/crypto/scrypt"
   "os"
)


func main() {
   var err error
   password := "AAA"
   salt := "BB"
   key, err := scrypt.Key([]byte(password), []byte(salt), 32768, 8, 1, 32)
   if err != nil {
      fmt.Fprintf(os.Stderr, "Failed to derive encryption key: %v", err)
      fmt.Fprintln(os.Stderr)
      return
   }
   in, err := os.Open("aa.zip")
   out, err := os.Create("bb.zip")
   //_, err = sio.Encrypt(out, in, sio.Config{Key: key})
   //if err != nil {
   // fmt.Fprintf(os.Stderr, "Failed to encrypt data: %v", err)
   // fmt.Fprintln(os.Stderr)
   // return
   //}
   _, err = sio.Decrypt(out, in, sio.Config{Key: key})
   if err != nil {
      fmt.Fprintf(os.Stderr, "Failed to decrypt data: %v", err)
      fmt.Fprintln(os.Stderr)
      return
   }
}
你当前的 `docker-compose.yml` 文件中使用了 `/minio/data` 作为 MinIO 的数据目录,你想将其修改为挂载宿主机的 `/home/zy/minio/data` 目录。 --- ## ✅ 一、修改后的 `docker-compose.yml` 文件 将原来的: ```yaml volumes: - /minio/data:/data - /minio/certs:/root/.minio/certs ``` 修改为: ```yaml volumes: - /home/zy/minio/data:/data - /home/zy/minio/certs:/root/.minio/certs ``` 最终的完整配置如下: ```yaml version: '3.7' services: minio: image: quay.io/minio/minio container_name: minio ports: - "9000:9000" - "9001:9001" volumes: - /home/zy/minio/data:/data - /home/zy/minio/certs:/root/.minio/certs environment: MINIO_ROOT_USER: root MINIO_ROOT_PASSWORD: root command: server /data --console-address ":9001" ``` --- ## ✅ 二、说明 | 配置项 | 说明 | |--------|------| | `/home/zy/minio/data` | 宿主机上的 MinIO 数据存储目录,MinIO 将在此保存上传的文件 | | `/data` | 容器内部的 MinIO 数据目录 | | `/home/zy/minio/certs` | 宿主机上的证书目录(可选),用于配置 HTTPS | | `--console-address ":9001"` | MinIO 控制台使用的端口 | --- ## ✅ 三、操作步骤 ### 1. 创建本地目录(如果不存在) ```bash mkdir -p /home/zy/minio/data mkdir -p /home/zy/minio/certs ``` ### 2. 设置权限(推荐) ```bash chmod -R 777 /home/zy/minio/data chmod -R 777 /home/zy/minio/certs ``` > ⚠️ 生产环境建议使用更安全的权限设置,例如: ```bash chown -R 1000:1000 /home/zy/minio/data chown -R 1000:1000 /home/zy/minio/certs ``` ### 3. 启动 MinIO 在 `docker-compose.yml` 所在目录执行: ```bash docker-compose up -d ``` ### 4. 查看日志确认是否启动成功 ```bash docker-compose logs -f minio ``` --- ## ✅ 四、访问 MinIO 控制台 打开浏览器访问: 🔗 [http://localhost:9001](http://localhost:9001) 使用你配置的账号密码登录: - **Access Key**: `root` - **Secret Key**: `root` --- ## ✅ 五、常见问题 ### 问题 1:MinIO 启动失败,提示权限错误 **解决办法:** 确保 `/home/zy/minio/data` 目录有写入权限: ```bash chmod -R 777 /home/zy/minio/data ``` 或者使用: ```bash chown -R 1000:1000 /home/zy/minio/data ``` 并在 `docker-compose.yml` 中添加: ```yaml user: "1000:1000" ``` --- ### 问题 2:证书目录挂载失败(如果使用 HTTPS) 确保 `/home/zy/minio/certs` 下有合法的证书文件,如: ```bash /private.key /public.crt ``` --- ## ✅ 六、总结 | 操作 | 命令 | |------|------| | 创建数据目录 | `mkdir -p /home/zy/minio/data` | | 修改 docker-compose.yml | 将 `/minio/data` 改为 `/home/zy/minio/data` | | 设置权限 | `chmod -R 777 /home/zy/minio/data` | | 启动容器 | `docker-compose up -d` | | 查看日志 | `docker-compose logs -f minio` | | 控制台地址 | [http://localhost:9001](http://localhost:9001) | --- ##
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值