Skip to content

Commit 78fbf23

Browse files
authored
Merge pull request #92 from dt3310321/s3
S3
2 parents 28f145e + b0f0eb2 commit 78fbf23

File tree

4 files changed

+22
-9
lines changed

4 files changed

+22
-9
lines changed

.travis.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
sudo: false
22
language: python
33
python:
4-
- '2.6'
54
- '2.7'
65
- '3.5'
76
- '3.6'

qcloud_cos/cos_client.py

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -209,8 +209,8 @@ def send_request(self, method, url, bucket, timeout=30, **kwargs):
209209
kwargs['headers'] = format_values(kwargs['headers'])
210210
if 'data' in kwargs:
211211
kwargs['data'] = to_bytes(kwargs['data'])
212-
try:
213-
for j in range(self._retry):
212+
for j in range(self._retry + 1):
213+
try:
214214
if method == 'POST':
215215
res = self._session.post(url, timeout=timeout, **kwargs)
216216
elif method == 'GET':
@@ -223,9 +223,11 @@ def send_request(self, method, url, bucket, timeout=30, **kwargs):
223223
res = self._session.head(url, timeout=timeout, **kwargs)
224224
if res.status_code < 400: # 2xx和3xx都认为是成功的
225225
return res
226-
except Exception as e: # 捕获requests抛出的如timeout等客户端错误,转化为客户端错误
227-
logger.exception('url:%s, exception:%s' % (url, str(e)))
228-
raise CosClientError(str(e))
226+
except Exception as e: # 捕获requests抛出的如timeout等客户端错误,转化为客户端错误
227+
logger.exception('url:%s, retry_time:%d exception:%s' % (url, j, str(e)))
228+
if j < self._retry:
229+
continue
230+
raise CosClientError(str(e))
229231

230232
if res.status_code >= 400: # 所有的4XX,5XX都认为是COSServiceError
231233
if method == 'HEAD' and res.status_code == 404: # Head 需要处理

qcloud_cos/version.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11

2-
__version__ = '5.1.7.1'
2+
__version__ = '5.1.7.2'

ut/test.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
SecretId=SECRET_ID,
2525
SecretKey=SECRET_KEY,
2626
)
27-
client = CosS3Client(conf)
27+
client = CosS3Client(conf, retry=3)
2828

2929

3030
def _create_test_bucket(test_bucket):
@@ -638,6 +638,18 @@ def test_list_multipart_uploads():
638638
)
639639

640640

641+
def test_upload_file_from_buffer():
642+
import io
643+
data = io.BytesIO(6*1024*1024*b'A')
644+
response = client.upload_file_from_buffer(
645+
Bucket=test_bucket,
646+
Key='test_upload_from_buffer',
647+
Body=data,
648+
MaxBufferSize=5,
649+
PartSize=1
650+
)
651+
652+
641653
def test_upload_file_multithreading():
642654
"""根据文件大小自动选择分块大小,多线程并发上传提高上传速度"""
643655
file_name = "thread_1GB"
@@ -650,7 +662,7 @@ def test_upload_file_multithreading():
650662
Bucket=test_bucket,
651663
Key=file_name,
652664
LocalFilePath=file_name,
653-
MAXThread=10,
665+
MAXThread=5,
654666
EnableMD5=True
655667
)
656668
ed = time.time() # 记录结束时间

0 commit comments

Comments
 (0)