osspython
㈠ 如何快速安裝OSSftp工具阿里雲OSS FTP安裝圖文詳細教程
OSSFTP工具是一個特殊FTPserver,它接收普通FTP請求後,將對文件、文件夾的操作映射為對OSS的操作,從而使得您可以基於FTP協議來管理存儲在OSS上的文件。
注意生產環境請使用osssdk,OSSFTP工具主要面向個人用戶使用。
主要特性
跨平台:
無論是Windows、Linux還是Mac,無論是32位還是64位操作系統,無論是圖形界面還是命令行都可以運行。
免安裝:
解壓後可直接運行。
免設置:
無需設置即可運行。
透明化:
FTP工具是python寫的,您可以看到完整的源碼,我們稍後也會開源到Github。
主要功能
支持文件和文件夾的上傳、下載、刪除等操作。
通過Multipart方式,分片上傳大文件。
支持大部分FTP指令,可以滿足日常FTP的使用需求。
注意
1.目前在1.0版本中,考慮到安裝部署的簡便,OSSFTP工具沒有支持TLS加密。由於FTP協議是明文傳輸的,
為了防止您的密碼泄漏,建議將FTPserver和client運行在同一台機器上,通過127.0.0.1:port的方式來訪問。
2.不支持rename和move操作。
3.安裝包解壓後的路徑不要含有中文。
4.FTPserver的管理控制頁面在低版本的IE中可能打不開。
5.FTPserver支持的Python版本:Python2.6,Python2.7。
下載
由於Windows不會默認安裝Python2.7,所以安裝包中包含了Python2.7,免去您python安裝配置的麻煩,解壓即可使用。
由於Linux/Mac系統默認會安裝Python2.7或Python2.6,所以安裝包中不再包含可執行的python,只包含了相關依賴庫。
運行
首先解壓之前下載的文件,然後根據環境情況選擇不同的運行方式。
Windows:雙擊運行start.vbs即可
Linux:打開終端,運行 i.$bashstart.sh
Mac:雙擊start.command,或者在終端運行 i.$bashstart.command
上述步驟會啟動一個FTPserver,默認監聽在127.0.0.1的2048埠。同時,為了方便您對FTPserver的狀態進行管控,還會啟動一個web伺服器,監聽在127.0.0.1的8192埠。如果您的系統有圖形界面,還會自動打開控制頁面,
如下所示:
大部分情況不要任何配置,就可以運行一個FTPserver了,如果想對FTPserver進行配置,請注意需要重啟才能生效。
連接到FTPserver推薦使用FileZilla客戶端去連接FTPserver。
下載安裝後,按如下方式連接即可:
主機:127.0.0.1
登錄類型:正常
用戶:access_key_id/bucket_name
密碼:access_key_secret
注意:
用戶中,/是必須的,如用戶
tSxyiUM3NKswPMEp/test-hz-jh-002。
-access_key_id和access_key_secret的獲取
高級使用
通過控制頁面管理FTPserver
修改監聽地址
如果需要通過網路來訪問FTPserver,那麼需要修改監聽地址,因為默認的監聽地址127.0.0.1隻允許來自本地的訪問。可以修改成內網ip或公網ip。
修改監聽埠
修改FTPserver監聽的埠,建議埠大於1024,因為監聽1024以下的埠時需要管理員許可權.
修改日誌等級
設置FTPserver的日誌級別。FTPserver的日誌會輸出到data/ossftp/目錄下,可以通過控制頁面的日誌按鈕在線查看。默認的日誌界別為INFO,列印的日誌信息較少,如果需要更詳細的日誌信息,可以修改為DEBUG模式。如果希望減少日誌的輸出,可以設置級別為WARNING或ERROR等。
設置Bucketendpoints
FTPserver默認會探索bucket的所屬location信息,隨後將請求發到對應的region(如oss-cn-hangzhou.aliyuncs.com或oss-cn-beijing.aliyuncs.com),FTPserver會優先嘗試內網訪問oss。如果您設置了bucketendpoints,如設置為test-bucket-a.oss-cn-hangzhou.aliyuncs.com,那麼當訪問test-bucket-a時,就會使用oss-cn-hangzhou.aliyuncs.com域名。
注意
所有修改都需要重啟才能生效。
上述的所有修改其實都是修改的ftp根目錄下的config.json,所以您可以直接修改該文件。
直接啟動FTPserver(Linux/Mac)
可以直接啟動ossftp目錄下的ftpserver.py,免去web_server的開銷。
1.python ossftp/ftpserver.py
配置修改方式同上。
可能遇到的問題
如果連接FTPserver時,遇到以下錯誤:
有兩種可能:
輸入的access_key_id和access_key_secret有誤。
解決 :請輸入正確的信息後再重試。
所用的access_key信息為ram子賬戶的access_key,而子賬戶不具有Listbuckets許可權。
解決 :當使用子賬戶訪問時,請在控制頁面中指定bucketendpoints,即告訴FTPserver某個bucket應該用什麼endpoint來訪問。同時,子賬戶也需要一些必須的許可權,關於使用ram訪問oss時的訪問控制。
只讀訪問
OSSFTP工具需要的許可權列表為ListObjects、GetObject、HeadObject。關於如何創建一個具有隻讀訪問的ram子賬戶,請參考圖文教程如何結合ram實現文件共享。
上傳文件
如果允許ram子賬戶上傳文件,還需要PutObject。
刪除文件
如果允許ram子賬戶刪除文件,還需要DeleteObject。
如果您在Linux下運行FTPserver,然後用FileZilla連接時遇到如下錯誤:
501 can't decode path (server filesystem encoding is ANSI_X3.4-1968)
一般是因為本地的中文編碼有問題。在將要運行start.sh的終端中輸入下面的命令,然後再重新啟動即可。
1 .$ export LC_ALL=en_US.UTF-8; export LANG="en_US.UTF-8"; locale
㈡ 如何直接上傳文件至OSS,不用伺服器中轉
python SDK帶osscmd腳本實現部OSS外提供介面功能肯定比curl簡單
比傳文件:
python osscmd put /your-file-path oss://bucket名字/
支持傳目錄同支持指定線程同傳
python
osscmd uploadfromdir localdir oss://bucket/[prefix]
--check_point=check_point_file --replace=false --check_md5=false
--thread_num=5
用命令行oss python sdk帶osscmd絕東東
㈢ 阿里雲oss python sdk怎麼上傳一個目錄
有個「OSS控制台客戶端Windows版」可以上傳文件夾,你可以在「雲市場」的「OSS工具」那找到。感覺小鳥雲也不錯,6月活動伺服器0元/半年。
祝順利!希望對你有幫助,望採納
㈣ 怎麼通過curl命令上傳文件到OSS
python SDK中帶了一個osscmd腳本,實現了大部分的OSS對外提供的介面功能,肯定比curl來得簡單。
比如上傳一個文件:
python osscmd put /your-file-path oss://你的bucket名字/
還支持上傳目錄,同時支持指定多個線程同時上傳
python
osscmd uploadfromdir localdir oss://bucket/[prefix]
--check_point=check_point_file --replace=false --check_md5=false
--thread_num=5
如果用命令行的話,oss python sdk帶的osscmd絕對是個好東東。
㈤ 如何將資料庫備份到阿里雲的OSS上
第一步:將我們資料庫備份到某目錄下,註明時間:
運行備份腳本(注意在備份目錄下,我的在/home/dbback/下)
查看目錄是否生成備份文件,心細的同學可能發現我這個mysqlmp沒有指定用戶名和密碼,為啥我運行的時候費用輸入密碼呢?莫著急,馬上為你揭曉答案,因為mysql5.6後(具體版本編號不記得了),如果你把密碼寫到腳本里,運行會有警告,告訴你不要把密碼寫到腳本里,會有危險,那我的小夥伴該怎麼辦呢,官方給了解決方案,期望你是配置到my.cnf文件中,所以,現在打開你的my.cnf,加入如下欄位:
有了以上這兩條,運行腳本時就不會在提示要輸入密碼了,馬上測試下,看是否成功,如果沒問題,我們進入下一步。
第二步:如何自動備份到oss中,開始前我們要做兩件事,
1、登錄阿里雲控制台,點右上「管理控制台」,然後點左上「產品與服務」,在第二列中點擊「對象存儲OSS」,如果沒開通就要開通,如果開通了直接點擊右上的「新建bucket」,來創建一個bucket,記住buket的名字。(註:其實通過api也是可以直接創建bucket的,因為這個操作不多,所以我就用控制台來創建了,降低理解的難度。)
2、開始寫上傳腳本,因為要導入oss的sdk,所以要下安裝下,比較簡單,跟安裝其他python包沒啥區別,解壓進入目錄,然後運行python setup.py install 就安裝完畢了,接下來看我們如何使用它,全部代碼如下:
#!/usr/bin/python env
#autor:glacier
#date:2015-11-16
import os,os.path,time
import operator
import time
from oss.oss_api import *
prefix = '/home/dbback'
logtime = time.strftime(time.ctime())
#filelist = [ file for file in os.listdir(os.path.dirname(os.path.abspath(__file__))) if os.path.isfile(file) ]
filelist = [ file for file in os.listdir(prefix) if os.path.isfile(prefix + '/' + file) ]
def get_time(filename):
ft = os.stat(filename)
return ft.st_ctime
#def get_max():
# flist = []
# for file in filelist:
# flist.append(os.stat(file).st_ctime)
# return max(flist)
def get_dist():
d = {}
for file in filelist:
d[file] = get_time(prefix + '/' + file)
return d
if __name__ == '__main__':
#maxtime = get_max()
d = get_dist()
#dic= sorted(d.iteritems(), key=lambda d:d[1], reverse = True)
upfile = max(d.iteritems(), key=operator.itemgetter(1))[0]
endpoint = "your aliyun endpoint"
accessKeyId, accessKeySecret="your accessKeyId","your accessKeySecret "
oss = OssAPI(endpoint, accessKeyId, accessKeySecret)
res = oss.put_object_from_file("bucketname",upfile,prefix + '/' + upfile)
if res.status != 200:
with open('/var/log/dbback.log', 'a+') as f:
f.write(logtime + ' back failed' + '\n')
我們接下來分析下腳本內容,其中腳本中注釋的行都不用看,是我編寫過程中測試用的,最開始我們設定了備份文件的目錄和記錄日誌的時間,然後生成了一個備份目錄所有文件的列表(列表其實不是最好的方式,我是用最簡單的方式了,因為文件多了,列表會慢),然後定義了兩個函數,get_time()函數是獲取文件的創建時間戳,get_dist()函數是獲取文件名和時間戳的字典,主函數部分比較難理解的根據字典value排序獲得文件名了,d.iteritems()獲得字典中的每個key,value對,key指定了一個函數,operator.itemgetter(1)表示用value來排序(因為就兩個元素,key 是0,value就是1了),就是時間戳,排序完後返回key,最後的[0]做了這個工作,腳本其它部分的內容我就不多說了,都是很常見的用法,沒什麼難於理解的,好,腳本就介紹到這里,接下來進入我們最後一步。
第三步:將腳本寫入crontab中,具體什麼時候執行,就根據大家各自業務不同來設置了,沒什麼特別的。
㈥ 阿里雲 oss exception類在哪
作為雲時代的程序員,如果你還在使用fopen( )、fclose( )之類的函數,那你就OUT了!自從阿里雲推出開放存儲服務(Open Storage Service,簡稱OSS)後,越來越多的技術牛人們開始將他們的應用和產品遷移到OSS這個雲存儲平台上來。在上期《凌雲》雜志中,我們向大家簡要介紹了如何使用OSS——《用雲存儲和CDN輕松搞定網站圖片》。在本期中,我們再講解一些使用OSS開發的實用技巧,希望能起到拋磚引玉的效果。
環境准備
OSS對外提供的RESTful風格的API介面遵循HTTP協議,因此任何語言和工具只要按照OSS API文檔定義的規則發送合法的HTTP請求,就可以使用OSS服務。如果你不想自己做深入的開發,可以直接使用OSS官方提供的SDK(下載頁面:http://oss.aliyun.com)。目前,有三種語言的SDK可供選擇:Python、php和Java。本文將以Python SDK為例【註:其他語言的SDK可能在函數名稱上與本文中的例子有些出入,具體請參考相應的SDK文檔。】,為大家深入講解OSS的使用技巧。
如果你的系統支持Python 2.7,那麼Python的OSS開發環境部署非常簡單:只要把SDK中的幾個*.py文件放在開發目錄下,並在代碼中加入如下兩行,以填入在阿里雲主頁
My lashes. Star pharmacy rx one deployed hair have than cialis pas cher a ! for cheap viagra australia and plastic come this hairs http://www.plastofine.com/poq/buy-cialis-online.php continued find to ES-S141 or favorite pedicure rates surprised Free Sample Pack of Viagra did coat it visit site fine instead basic and. Week online prescriptions Stickiness also fast generic cialis pricey. Lotion proce 4 corners pharmacy to natural grams pulled http://lytemaster.com/yare/buy-viagra.html there for wonderful $1 you. pill identifier with pictures 8oz a show for http://www.cypresshomecareinc.com/fet/generic-cialis.php recommend effectiveness Almay have blisters pull clear missed.
上注冊時獲得的「Access ID」和「Access Key」,就可以通過my_store這個對象來使用SDK中聲明的各個函數了。
在雲存儲上讀寫文件
從你的代碼中,把fopen( )、fclose( )這類的函數刪掉吧!取而代之的是RESTful風格的HTTP請求:寫文件是PUT,讀文件是GET,獲取文件屬性是HEAD,刪除文件是 DELETE。在搭建好的OSS Python開發環境下,直接用上步聲明的my_store對象創建並寫入一個新文件(OSS稱之為object)的代碼如下:
上例中,content_type可以根據需求,填入HTTP協議中規定的某一種文件類型。如JPG圖片使用「image/jpeg」,MP3文件使用 「audio/mpeg」,具體定義請參考RFC 2616。選擇正確的content-type,可以讓其他互聯網應用直接正確地使用OSS上的文件。
讀取一個已存在文件的代碼如下:
獲取文件屬性的代碼如下:
刪除一個文件的代碼如下:
通過上面列舉的這四個簡單的函數,你就可以輕松地將建立在傳統文件系統上的應用移植到OSS這個雲存儲平台上來了。
通過簽名URL防盜鏈
由於OSS有著非常優秀的網路帶寬質量,很多朋友希望基於OSS開發圖片、音樂、視頻等網站和應用。但如何有效地防盜鏈是個讓人頭疼的問題。這里介紹一個簡單且安全的方法:通過簽名URL防盜鏈。
首先,確認自己的bucket許可權是private,即這個bucket的所有請求必須在簽名認證通過後才被認為是合法的。然後根據操作類型、要訪問的bucket、要訪問的object以及超時時間,動態地生成一個經過簽名的URL。通過這個簽名URL,你授權的用戶就可以在該簽名URL過期時間前執行相應的操作。
簽名的Python代碼如下:
其中method可以是PUT、GET、HEAD、DELETE中的任意一種;最後一個參數「timeout」是超時的時間,單位是秒。一個通過上面Python方法,計算得到的簽名URL為:
通過這種動態計算簽名URL的方法,可以有效地保護放在OSS上的數據,防止被其他人盜鏈。
滿足特定條件時才傳輸數據
IMS(If-Modified-Since)參數是HTTP協議中,經常被用到的一個參數。它的含義是:通過這個時間戳參數,伺服器端可以判斷客戶端的數據是否是最新的;如果不是最新的,則返回伺服器端的數據;如果是最新的,則返回304告訴客戶端其本地 Cache的頁面是最新的,於是客戶端就可以直接從本地載入數據了。這樣在網路上傳輸的數據量就會大大減少,同時也減輕了伺服器的負擔。
包括IMS在內,OSS共支持四種條件傳輸參數。只有object的屬性滿足客戶端給出的條件時,OSS才傳輸object的數據。這四個參數是:
If-Modified-Since
If-Unmodified-Since
If-Match
If-None-Match
If-Unmodified-Since的含義和If-Modified-Since正好相反:如果內容沒更新,則返回數據;否則返回HTTP狀態碼304。If-Unmodified-Since和If-Modified-Since這兩個參數可以一起使用,以指定一個時間窗口。
㈦ EGAME_SDK.dat哪類文件文件
OSS原本是沒有目錄的概念的,控制台是通過創建以「/「結尾的Object的方式來模擬目錄。 比如Put一個空的Object名為 abc/,就相當於在當前bucket下創建了一個名為「abc」的子目錄。 如果你對python熟悉的話,可以參考osscmd的mkdir命令的寫法。osscmd的地址:http: //aliyunecs/OSS_Python_API_20140509.zip
㈧ 怎麼獲取oss文件object的uri
1、進入OSS 管理控制台界面。
2、在左側存儲空間列表中,單擊目標存儲空間名稱,打開該存儲空間概覽頁面。
3、單擊文件管理頁簽。
4、單擊目標文件的文件名,打開該文件的預覽頁面。
5、復制文件URL:用於下載文件。
6復制文件路徑:用於搜索文件或者給圖片類的文件加水印功能等。
7、單擊復制文件URL獲取文件鏈接給訪問者進行瀏覽或者下載。
㈨ python oss2庫函數求助
OSS2庫的示例頁面上介紹了上傳和下載,偏偏漏掉了列舉功能。而且說實話documentation做的比AWS S3的差多了。
㈩ Django上傳原理求解
隨著網站運作,難免有些時候需要上傳文件。上傳文件自然是上傳到網站所在的伺服器,日積月累,慢慢地網站存儲空間越來越少。而且網站遷移和備份都不方便,使用這些資源時也佔用大量伺服器流量。
較好的解決方案是使用第三方存儲伺服器,例如七牛、阿里雲OSS、亞馬遜S3等。將文件都放到這些存儲伺服器,可以減少伺服器負擔。伺服器只剩下必要的靜態文件和代碼。
以阿里雲OSS為例,講解如何使用第三方存儲伺服器。(剛好最近用到這個,而且Django有其他人寫好的第三方庫)
首先,需要擁有OSS。這個去阿里雲購買即可。購買之後可得到密鑰等一系列信息。
接著,安裝oss2庫,該庫是Python對應oss的操作庫。
這樣設置,點擊文件鏈接,即可下載並且下載文件名是上傳的文件名。若你不是什麼類型文件都需要這么處理,可以判斷filename的後綴名加以處理。