<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      S3 對象批量重命名快捷方法

      本文所述操作適用于兼容 S3 協議的所有存儲框架,包括 AWS S3Aliyun OSSMinIOCeph 等。


      不知為何,截止目前,S3 協議并不包含對象重命名的接口。如果有重命名對象的需求,一般能想到的就是重新上傳改名之后的對象,然后從存儲桶中將原名對象刪除。很明顯,這種方式好比大炮打蚊子,目的達到了,累得一身汗,要是本地沒有備份,還得先下載,費時費力費錢。特別是當待處理的對象的數量相當龐大的時候,如果不想持續加班一個月,那就要琢磨琢磨另辟蹊徑才行。

      能不能將存儲桶掛載到本地,然后用本地 shell 命令操作其中的對象呢?值得一試!

      掛載

      使用 rclones3fs-fusegoofys 等工具掛載,這里以 goofys 為例。

      1. 直接下載編譯好的執行文件wget https://github.com/kahing/goofys/releases/latest/download/goofys
      2. 設置執行權限chmod +x goofys
      3. S3 密鑰配置
      mkdir ~/.aws
      vi ~/.aws/credentials
      
      # 以下是 ~/.aws/credentials 內容
      [default]
      aws_access_key_id = xxxxxxx
      aws_secret_access_key = yyyyyyyy
      
      1. 創建掛載點mkdir /mnt/foo
      2. 掛載
      mkdir /opt/goofys
      ./goofys --endpoint https://us-east.s3.aws.com bucketName /mnt/foo/
      
      1. 驗證是否掛載成功。
      # 列出前 10 個文件
      ls /mnt/foo/ | head -n 10
      # 注意:該語句并不能減少 ls 的執行時間。當文件數量過多時,可以使用通配符減少 ls 的羅列數量。
      

      重命名

      掛載成功之后,我們就可以采用 mvrename 指令嘗試重命名文件了,下面以 perl 版本的 rename 為例(該版本支持正則表達式)。

      # 所有文件名只保留后 5 個字符,并更改擴展名
      rename 's/\w*?(\w{5})\.mdi/$1.obj/' *
      # 實際也是逐個文件處理,而非一次性同時處理,文件多則耗時
      # 如果文件太多則會報 "Argument list too long"(雖然參數只有一個星號,但實則是將所有文件名查找出來后執行),可以改成如下方式:
      find . -name "*" | xargs rename 's/\w*?(\w{5})\.mdi/$1.obj/'
      # 雖然不會報錯,但其實只是將查找文件名環節轉給了 find,總耗時是一樣的
      

      為了更好更靈活地重命名巨量文件,只能編寫腳本了。以下是示例代碼:

      rename_s3_objects()
      {
      local renamedCnt=0
      for obj in ./*
      do
              if [ `expr ${#obj} - 2` -gt 8 ]; then	# 如果不作判斷,那么不管文件名是否符合,正則都會執行(耗時),然后再根據執行結果看是否重命名(重命名比正則更耗時)
                      rename 's/\w*?(\w{5})\.mdi/$1.obj/' $obj
              fi	
      	renamedCnt=$(($renamedCnt + 1))
      	if [ `expr $renamedCnt % 100` -eq 0 ]; then
                      # 每處理完 100 個對象就輸出提示
      		echo "$renamedCnt objects renamed"
      	fi
      done
      return 0
      }
      
      rename_s3_objects
      
      # 似乎 ``; $[]; $(()) 都可以執行運算
      

      保存后,在命令行中使用 sh saved_file_name 執行即可。

      經測算,在普通網絡環境下,每重命名 100 個對象(大約 100M),耗時 70s 左右。并未檢查過程中是否涉及到對象的傳輸(博主試驗的服務器并沒有帶寬使用統計),推測應該是沒有,有興趣的朋友可以驗證下。


      除重命名外,類似于[批量]刪除、S3 中對象加斜杠前綴(創建文件夾并移動文件)等指令應該也可以通過掛載方式玩轉。

      posted @ 2023-04-24 13:20  萊布尼茨  閱讀(919)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 免费看又黄又无码的网站| 亚洲精品无码久久毛片| 亚洲精品成人福利网站| 成人午夜免费无码视频在线观看| 国产无遮挡猛进猛出免费软件| 亚洲av乱码一区二区| 夜夜添无码试看一区二区三区 | 亚洲青青草视频在线播放| 亚洲国产精品一二三区| 久久久精品午夜免费不卡| 亚洲中文字幕久在线| 色九月亚洲综合网| 377人体粉嫩噜噜噜| 最新亚洲av日韩av二区| 国产精品免费看久久久| 乐业县| 成a人片亚洲日本久久| 北岛玲中文字幕人妻系列| 国产无遮挡又黄又爽不要vip软件| 久久午夜私人影院| 福利一区二区视频在线| 国产一区二区精品久久凹凸| 亚洲老熟女一区二区三区 | 久久精品国产99国产精品严洲 | 国产亚洲精品第一综合| 精品一区二区三区蜜桃久| 蜜芽久久人人超碰爱香蕉| 日本三级香港三级三级人!妇久 | 亚洲肥熟女一区二区三区| 日本精品不卡一二三区| 最近日本免费观看高清视频| 尤物国产精品福利在线网| 国产网友愉拍精品视频手机| 亚洲人成电影网站色mp4| 日韩有码中文在线观看| 在线 国产 欧美 专区| 日韩精品区一区二区三vr| 久久精品国产色蜜蜜麻豆| 亚洲日韩中文字幕在线播放| 大尺度国产一区二区视频| 国产又色又爽又黄的在线观看|