• 當前位置:首頁 > IT技術 > Windows編程 > 正文

    在windows下使用s3cmd和s3browser來管理amazon s3的筆記
    2022-05-29 22:37:15

    S3是Amazon S3的簡稱,s3cmd是一款命令行工具用來管理s3,同時還有一款圖形化的管理工具:s3 browser。

    因為絕大多數用戶都是在linux下管理s3,而我們的打包機是在windows上,所以需要在windows下管理s3,本文記錄一下踩坑。

    S3文檔

    s3的官方文檔:https://s3tools.org/s3cmd

    s3cmd下載:https://github.com/s3tools/s3cmd


    在windows上的踩坑

    有兩個選項必須要配置對否則會一直報301錯誤,導致無法上傳和下載,但是s3 ls這條命令是可以用的

    就是這兩個選項:

    signature_v2 = True 這個加密選項如果是False每次上傳或下載文件都會報301錯誤

    host_bucket = %(bucket)s.s3.nie.xxx.com ,這個選項如果不對,無法上傳或下載

    linux下的示例配置文件(windows下的ini配置文件大體類型)

    [default]
    access_key = 
    secret_key =
    default_mime_type = binary/octet-stream
    enable_multipart = True
    encoding = UTF-8
    encrypt = False
    host_base = s3.nie.xxx.com
    host_bucket = %(bucket)s.s3.nie.xxx.com
    multipart_chunk_size_mb = 30
    socket_timeout = 300
    stop_on_error = False
    use_https = False
    use_mime_magic = True
    verbosity = WARNING
    signature_v2 = True
    

    windows上的s3配置文件在這個目錄下(不同于linux):

    Configuration saved to 'C:Userszhaoqingqing01AppDataRoamings3cmd.ini'
    

    配置文件命令解釋

    use_mime_magic = True #自動判斷上傳文件的mime類型

    signature_v2 = True # 需要加密

    更加詳細的解釋:https://www.bilibili.com/read/cv6012754


    在windows下安裝s3cmd

    安裝步驟:

    1. 從github下載s3cmd,需要安裝python2,并把python添加到環境變量中

    2. cd到s3cmd所在的目錄下,執行:python setup.py install

    3. 等待安裝完成后,所有的s3cmd命令都可以使用了,但需要cd到s3cmd目錄下

    注意:在所有命令前都需要加上python,因為是通過python來執行的。

    示例:

    cd c:
    cd c:s3cmd 
    python s3 ls
    

    參考文檔:https://docs.e2enetworks.com/guides/s3cmdwindows.html(windows上可以不用安裝Gpg4win(加密軟件))


    s3cmd常用命令

    可用的命令列表,見這里的commands部分:https://s3tools.org/usage

    上傳/同步某個目錄 : s3cmd sync LOCAL_DIR s3://BUCKET[/PREFIX] or s3://BUCKET[/PREFIX] LOCAL_DIR,例子:python s3cmd sync "c:/test_res" s3://xxx-dev/game_rsync_res/res

    查詢桶下面所有的文件: s3cmd ls s3://BUCKET[/PREFIX],例子:s3cmd ls s3://xxx-dev

    上傳某個文件:python s3cmd put "E:/Temp/test_s3.txt" s3://xxx-dev/

    下載某個文件:python s3cmd get s3://xxx-dev/test_s3.txt


    FAQ

    Q:如何新增文件?

    A:往文件夾中新增加文件,然后在同步文件夾時,就會把新文件上傳過去

    Q:如何刪除文件?

    A:試過先在文件夾下刪除某個文件,然后調用sync,看看遠程是否已刪除這張圖片?

    Q:如何更新某張圖片?

    A:sync指令替換本地的圖片就能更到最新

    Q:如何切換不同的key?因為開發環境和正式環境的key不一樣

    A:像linux那樣,在每條命結尾使用 -c“xx.ini”


    S3存在的問題

    通過s3cmd del 刪除某個目錄后,還可以下載到,不知是否因為有緩存?

    把文件夾下的某個文件刪除后,通過sync同步文件,還可以下載到刪除掉的文件


    S3 Browser(可視化管理s3)

    除了命令行的方式,在windows下還有一個可視化的的軟件,它可以列出某個桶及目錄下的所有文件,并且提供可視化的上傳和下載操作

    使用文檔:https://docs.e2enetworks.com/guides/s3browser_windows.html

    官網:S3 Browser - Online help for Browser - Freeware client for Amazon S3. Amazon S3 bucket browser. S3 Client.

    使用方法如下:

    新建一個Account,每項配置如下

    Account Type:S3 Compatible Storage

    REST Endpoint:s3.nie.xxx.com

    不要勾選SSL/TLS和 Encrypt Access Keys

    點擊左下角打開高級設置,修改Addressing model為Virtual hosted style,然后點擊 Save changes

    image-20220528123811184


    日志保存位置

    S3 Browser可以保存每次操作的日志,日志保存位置:%APPDATA%S3Browserlogs


    S3 Browser也提供命令行

    首先本地磁盤的路徑符需要是,否則會報Exception


    連接遇到問題

    如果連接時報錯誤:Unable to perform requested action,在Edit Account中打開高級設置,修改Addressing model為Virtual hosted style

    image-20220529204858632

    修改Addressing model為Virtual hosted style

    本文摘自 :https://www.cnblogs.com/

    開通會員,享受整站包年服務
    国产呦精品一区二区三区网站|久久www免费人咸|精品无码人妻一区二区|久99久热只有精品国产15|中文字幕亚洲无线码