gpt4 book ai didi

bash - 使用 s3cmd 并行上传文件到 s3

转载 作者:行者123 更新时间:2023-11-29 08:51:38 24 4
gpt4 key购买 nike

我在服务器上有一大堆文件,我想将它们上传到 S3。这些文件以 .data 扩展名存储,但实际上它们只是一堆 jpeg、png、zips 或 pdf。

我已经写了一个简短的脚本,它可以找到 mime 类型并将它们上传到 S3 并且可以工作,但速度很慢。有什么方法可以使用 gnu 并行运行以下程序吗?

#!/bin/bash

for n in $(find -name "*.data")
do
data=".data"
extension=`file $n | cut -d ' ' -f2 | awk '{print tolower($0)}'`
mimetype=`file --mime-type $n | cut -d ' ' -f2`
fullpath=`readlink -f $n`

changed="${fullpath/.data/.$extension}"

filePathWithExtensionChanged=${changed#*internal_data}

s3upload="s3cmd put -m $mimetype --acl-public $fullpath s3://tff-xenforo-data"$filePathWithExtensionChanged

response=`$s3upload`
echo $response

done

此外,我确信这段代码总体上可以得到很大改进 :) 非常感谢反馈提示。

最佳答案

你显然很擅长编写 shell,并且非常接近解决方案:

s3upload_single() {
n=$1
data=".data"
extension=`file $n | cut -d ' ' -f2 | awk '{print tolower($0)}'`
mimetype=`file --mime-type $n | cut -d ' ' -f2`
fullpath=`readlink -f $n`

changed="${fullpath/.data/.$extension}"

filePathWithExtensionChanged=${changed#*internal_data}

s3upload="s3cmd put -m $mimetype --acl-public $fullpath s3://tff-xenforo-data"$filePathWithExtensionChanged

response=`$s3upload`
echo $response
}
export -f s3upload_single
find -name "*.data" | parallel s3upload_single

关于bash - 使用 s3cmd 并行上传文件到 s3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26934506/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com