trx
Published on 2024-09-04 / 163 Visits
0

windows下rclone挂载minio桶

1、下载rclone,https://downloads.rclone.org/v1.67.0/rclone-v1.67.0-windows-amd64.zip。

2、将下载的rclone解压至任意位置,我这里解压到了D:\rc\。

3、编写配置初始化powershell脚本。

# 提示输入参数
$access_key_id = Read-Host "请输入 access_keyID"
$secret_access_key = Read-Host "请输入 secret_access_key"
$endpoint = Read-Host "请输入 minio API地址"

# 创建参数字符串
$params = @"
[minio]
type = s3
provider = Minio
access_key_id = $access_key_id
secret_access_key = $secret_access_key
endpoint = $endpoint
"@ 

# 获取 %APPDATA% 的实际路径
$appdataPath = [System.Environment]::GetFolderPath([System.Environment+SpecialFolder]::ApplicationData)

# 指定目标文件路径
$targetFilePath = Join-Path -Path $appdataPath -ChildPath "rclone\rclone.conf"

# 确保目标目录存在,如果不存在则创建
if (-not (Test-Path -Path (Split-Path -Path $targetFilePath -Parent))) {
    New-Item -ItemType Directory -Path (Split-Path -Path $targetFilePath -Parent)
}

# 保存参数到目标文件,如果文件已存在则覆盖
$params | Out-File -FilePath $targetFilePath -Encoding UTF8 -Force

Write-Output "参数已保存到 $targetFilePath"

4、编写powershell脚本挂载磁盘驱动器。

# 定义一个函数来查找可用的驱动器字母
function Find-AvailableDriveLetter {
    for ($i = 67; $i -le 90; $i++) {
        $driveLetter = [char]$i
        if (-not (Test-Path "${driveLetter}:\\")) {
            return $driveLetter
        }
    }
    return $null
}

# 查找可用的驱动器字母
$availableDriveLetter = Find-AvailableDriveLetter

# 如果没有找到可用的驱动器,则退出脚本
if (-not $availableDriveLetter) {
    Write-Output "No available drive letters found."
    exit 1
}

# 使用找到的第一个可用驱动器字母进行挂载,test配置为桶名称,需根据密钥权限配置
Start-Process -FilePath ".\rclone.exe" -ArgumentList "mount minio:/test ${availableDriveLetter}:\ --vfs-cache-mode writes --dir-cache-time 0s --use-mmap" -WindowStyle Hidden

# 等待一段时间让 rclone mount 启动
Start-Sleep -Seconds 5

# 检查挂载是否成功
while (-not (Test-Path "${availableDriveLetter}:\\")) {
    Write-Output "Mounting failed or not ready yet. Retrying..."
    Start-Sleep -Seconds 1
}

# 挂载成功后打开资源管理器以显示挂载的目录
Start-Process explorer.exe "${availableDriveLetter}:"

5、执行配置初始化和挂载。

powershell需保存在rclone同级目录下

如powershell脚本默认不是powershell.exe程序打开的,可以右键点击脚本以powershell打开或设置默认打开程序。

powershell程序路径在:C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe

双击1-initconf.ps1执行配置初始化,access_keyID、secret_access_key和minio地址由管理员提供。

配置初始化后,在确保当前网络可以正常访问minio的IP地址和端口,执行挂载脚本。

双击2-startup.ps1,等待5秒会自动打开挂载的磁盘。