S3是Amazon S3的簡(jiǎn)稱,s3cmd是一款命令行工具用來(lái)管理s3,同時(shí)還有一款圖形化的管理工具:s3 browser。
因?yàn)榻^大多數(shù)用戶都是在linux下管理s3,而我們的打包機(jī)是在windows上,所以需要在windows下管理s3,本文記錄一下踩坑。
S3文檔
s3的官方文檔:https://s3tools.org/s3cmd
s3cmd下載:https://github.com/s3tools/s3cmd
在windows上的踩坑
有兩個(gè)選項(xiàng)必須要配置對(duì)否則會(huì)一直報(bào)301錯(cuò)誤,導(dǎo)致無(wú)法上傳和下載,但是s3 ls這條命令是可以用的
就是這兩個(gè)選項(xiàng):
signature_v2 = True 這個(gè)加密選項(xiàng)如果是False每次上傳或下載文件都會(huì)報(bào)301錯(cuò)誤
host_bucket = %(bucket)s.s3.nie.xxx.com ,這個(gè)選項(xiàng)如果不對(duì),無(wú)法上傳或下載
linux下的示例配置文件(windows下的ini配置文件大體類(lèi)型)
[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配置文件在這個(gè)目錄下(不同于linux):
Configuration saved to 'C:Userszhaoqingqing01AppDataRoamings3cmd.ini'
配置文件命令解釋
use_mime_magic = True #自動(dòng)判斷上傳文件的mime類(lèi)型
signature_v2 = True # 需要加密
更加詳細(xì)的解釋:https://www.bilibili.com/read/cv6012754
在windows下安裝s3cmd
安裝步驟:
-
從github下載s3cmd,需要安裝python2,并把python添加到環(huán)境變量中
-
cd到s3cmd所在的目錄下,執(zhí)行:python setup.py install
-
等待安裝完成后,所有的s3cmd命令都可以使用了,但需要cd到s3cmd目錄下
注意:在所有命令前都需要加上python,因?yàn)槭峭ㄟ^(guò)python來(lái)執(zhí)行的。
示例:
cd c:
cd c:s3cmd
python s3 ls
參考文檔:https://docs.e2enetworks.com/guides/s3cmdwindows.html(windows上可以不用安裝Gpg4win(加密軟件))
s3cmd常用命令
可用的命令列表,見(jiàn)這里的commands部分:https://s3tools.org/usage
上傳/同步某個(gè)目錄 : 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
上傳某個(gè)文件:python s3cmd put "E:/Temp/test_s3.txt" s3://xxx-dev/
下載某個(gè)文件:python s3cmd get s3://xxx-dev/test_s3.txt
FAQ
Q:如何新增文件?
A:往文件夾中新增加文件,然后在同步文件夾時(shí),就會(huì)把新文件上傳過(guò)去
Q:如何刪除文件?
A:試過(guò)先在文件夾下刪除某個(gè)文件,然后調(diào)用sync,看看遠(yuǎn)程是否已刪除這張圖片?
Q:如何更新某張圖片?
A:sync指令替換本地的圖片就能更到最新
Q:如何切換不同的key?因?yàn)殚_(kāi)發(fā)環(huán)境和正式環(huán)境的key不一樣
A:像linux那樣,在每條命結(jié)尾使用 -c“xx.ini”
S3存在的問(wèn)題
通過(guò)s3cmd del 刪除某個(gè)目錄后,還可以下載到,不知是否因?yàn)橛芯彺妫?/p>
把文件夾下的某個(gè)文件刪除后,通過(guò)sync同步文件,還可以下載到刪除掉的文件
S3 Browser(可視化管理s3)
除了命令行的方式,在windows下還有一個(gè)可視化的的軟件,它可以列出某個(gè)桶及目錄下的所有文件,并且提供可視化的上傳和下載操作
使用文檔:https://docs.e2enetworks.com/guides/s3browser_windows.html
使用方法如下:
新建一個(gè)Account,每項(xiàng)配置如下
Account Type:S3 Compatible Storage
REST Endpoint:s3.nie.xxx.com
不要勾選SSL/TLS和 Encrypt Access Keys
點(diǎn)擊左下角打開(kāi)高級(jí)設(shè)置,修改Addressing model為Virtual hosted style,然后點(diǎn)擊 Save changes
日志保存位置
S3 Browser可以保存每次操作的日志,日志保存位置:%APPDATA%S3Browserlogs
S3 Browser也提供命令行
首先本地磁盤(pán)的路徑符需要是,否則會(huì)報(bào)Exception
連接遇到問(wèn)題
如果連接時(shí)報(bào)錯(cuò)誤:Unable to perform requested action,在Edit Account中打開(kāi)高級(jí)設(shè)置,修改Addressing model為Virtual hosted style
本文摘自 :https://www.cnblogs.com/