Rclone误将文件夹名识别为Bucket名致404错误求助
问题原因与解决方案
核心问题
你的rclone远程配置([gabotron])中没有指定默认Bucket,导致rclone将冒号:后的第一个字符串sql-backups识别为Bucket名称,而非目标Bucket下的文件夹。
两种解决方法
方法1:修改rclone配置,绑定默认Bucket
在你的laraapp.conf配置中,给[gabotron]段添加bucket字段,直接指定默认Bucket为gabotron:
[gabotron] type = s3 env_auth = false access_key_id = xxx secret_access_key = xxxx/xxxx endpoint = fra1.digitaloceanspaces.com acl = public-read bucket = gabotron # 添加这一行
修改后,原命令gabotron:sql-backups会自动指向gabotronBucket下的sql-backups文件夹,无需调整PHP代码。
方法2:调整rclone命令,明确指定Bucket路径
如果不想修改配置,在PHP代码中调整命令,将路径改为远程名称:Bucket名称/文件夹名称的格式:
// 修改后的rclone命令 $rcloneCopyCommand = "rclone --config={$configFile} copy {$filename} {$remoteName}:{$remoteName}/{$bucketFoldername}";
执行后的命令会变为:
rclone --config=/home/Gabotron/configs/rclone/laraapp.conf copy /home/Gabotron/sql-backups/laraapp-2024_03_15_10.sql.gz gabotron:gabotron/sql-backups
这样rclone就能正确识别gabotron是Bucket,sql-backups是该Bucket下的文件夹。
内容的提问来源于stack exchange,提问作者gabogabans
相关产品推荐
相关产品推荐

