|
@@ -0,0 +1,95 @@
|
|
|
+# -*- coding: utf-8 -*-
|
|
|
+import os
|
|
|
+import oss2
|
|
|
+import requests
|
|
|
+import uuid
|
|
|
+import time
|
|
|
+
|
|
|
+class TedOSS:
|
|
|
+ def __init__(self):
|
|
|
+ """
|
|
|
+ """
|
|
|
+ #self.AccessKeyID = 'LTAIWf1G4szSVK57'
|
|
|
+ #self.AccessKeySecret = 'X8cyxHuOumqw4B0MQPdlvYL2FTZh05'
|
|
|
+ self.AccessKeyID = 'LTAI4G9BTKP2D3zfDpQkk8S8'
|
|
|
+ self.AccessKeySecret = 'aTQIvkP5C16e7fUH6zIlrB7I3j4TbR'
|
|
|
+ self.bucket_name = 'tederenoss'
|
|
|
+ self.root_name = 'zky'
|
|
|
+ self.auth = oss2.Auth(self.AccessKeyID, self.AccessKeySecret)
|
|
|
+ self.endpoint = 'http://oss-cn-beijing.aliyuncs.com'
|
|
|
+ self.bucket = oss2.Bucket(self.auth, self.endpoint, self.bucket_name)
|
|
|
+ self.domain = 'http://tederenoss.oss-cn-beijing.aliyuncs.com'
|
|
|
+
|
|
|
+
|
|
|
+ def upload_from_str(self,content_str=None,filename=None):
|
|
|
+ '''
|
|
|
+ 通过字符串上传
|
|
|
+ byte,unicode,str
|
|
|
+ '''
|
|
|
+ filename = os.path.join(self.root_name,filename)
|
|
|
+
|
|
|
+ result = self.bucket.put_object(filename,content_str)
|
|
|
+
|
|
|
+ if result.status == 200:
|
|
|
+ url = os.path.join(self.domain,filename)
|
|
|
+ else:
|
|
|
+ url = ''
|
|
|
+
|
|
|
+ return url
|
|
|
+
|
|
|
+ def upload_from_local(self, localfile=None, ossfile=None):
|
|
|
+ '''
|
|
|
+ 上传本地文件到oss
|
|
|
+ '''
|
|
|
+ ossfile = os.path.join(self.root_name, ossfile)
|
|
|
+
|
|
|
+ with open(localfile, 'rb') as fileobj:
|
|
|
+ result = self.bucket.put_object(ossfile, fileobj)
|
|
|
+
|
|
|
+ if result.status == 200:
|
|
|
+ url = os.path.join(self.domain, ossfile)
|
|
|
+ else:
|
|
|
+ url = ''
|
|
|
+
|
|
|
+ return url
|
|
|
+
|
|
|
+ def resumable_upload_from_local(self, localfile=None, ossfile=None):
|
|
|
+ ossfile = os.path.join(self.root_name, ossfile)
|
|
|
+
|
|
|
+ result = oss2.resumable_upload(self.bucket,ossfile,localfile,
|
|
|
+ store=oss2.ResumableStore(root='/tmp'),
|
|
|
+ multipart_threshold=100*1024,
|
|
|
+ part_size=100*1024,
|
|
|
+ num_threads=4,
|
|
|
+ )
|
|
|
+
|
|
|
+ if result.status == 200:
|
|
|
+ url = os.path.join(self.domain,ossfile)
|
|
|
+ else:
|
|
|
+ url = ''
|
|
|
+
|
|
|
+ return url
|
|
|
+
|
|
|
+ def upload_from_url(self, url=None, ossfile=None):
|
|
|
+ '''
|
|
|
+ '''
|
|
|
+ ossfile = os.path.join(self.root_name,ossfile)
|
|
|
+
|
|
|
+ resp = requests.get(url)
|
|
|
+
|
|
|
+ result = self.bucket.put_object(ossfile,resp)
|
|
|
+
|
|
|
+ if result.status == 200:
|
|
|
+ url = os.path.join(self.domain,ossfile)
|
|
|
+ else:
|
|
|
+ url = ''
|
|
|
+
|
|
|
+ return url
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ myoss = MyOSS()
|
|
|
+
|
|
|
+ localfile = '/tmp/survey_qrcode_100.png'
|
|
|
+ ossfile = 'test/test.png'
|
|
|
+ url = myoss.resumable_upload_from_local(localfile,ossfile)
|
|
|
+ print url
|