2016-11-16 74 views
0

在將圖像上傳到AWS S3時,我在Scrapy中得到了BotoServerError,因爲它正好是服務器故障。如何處理這些錯誤,以便我可以將物品管道設置爲睡眠一段時間,然後再次重新上傳?重試延遲中的未處理錯誤:scrapy

2016-11-17 05:59:55 [twisted] CRITICAL: 
Traceback (most recent call last): 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\threadpool.py", line 246, in inContext 
    result = inContext.theWork() 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\threadpool.py", line 262, in <lambda> 
    inContext.theWork = lambda: context.call(ctx, func, *args, **kw) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\context.py", line 118, in callWithContext 
    return self.currentContext().callWithContext(ctx, func, *args, **kw) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\twisted\python\context.py", line 81, in callWithContext 
    return func(*args,**kw) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 1426, in set_contents_from_string 
    encrypt_key=encrypt_key) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 1293, in set_contents_from_file 
    chunked_transfer=chunked_transfer, size=size) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 750, in send_file 
    chunked_transfer=chunked_transfer, size=size) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\key.py", line 951, in _send_file_internal 
    query_args=query_args 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\s3\connection.py", line 668, in make_request 
    retry_handler=retry_handler 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\connection.py", line 1071, in make_request 
    retry_handler=retry_handler) 
    File "D:\Kerja\HIT\PYTHON~1\SMARTE~1\SMARTE~1\lib\site-packages\boto\connection.py", line 1028, in _mexe 
    raise BotoServerError(response.status, response.reason, body) 
BotoServerError: BotoServerError: 503 Service Unavailable 
+1

我不認爲Scrapy的S3上傳處理程序會重試。我不確定除了遷移到boto3之外,還有一個簡單的修復方法(這是一個[未解決的問題])(https://github.com/scrapy/scrapy/issues/1866)) –

+0

您也可以嘗試安裝'botocore' (如果可用,scrapy將使用'botocore'而不是'boto')。看來botocore做了一些重試(雖然我找不到更多的細節) –

+0

謝謝! 'boto3'解決了它! –

回答

0

感謝@paul!根據他的回答,我通過卸載程序包boto並安裝程序包boto3來解決此問題。