2016-11-01 2 views
2

Я борется последние пару часов, но, похоже, здесь слеп. Я пытаюсь установить связь между scrapy и Amazon S3, но продолжаю получать ошибку, что ведро не существует (он делает, проверял дюжину раз).Scrapy with S3 support


Сообщение об ошибке:

2016-11-01 22:58:08 [scrapy] ERROR: Error storing csv feed (30 items) in: s3://onvista.s3-website.eu-central-1.amazonaws.com/feeds/vista/2016-11-01T21-57-21.csv 

в сочетании с

botocore.exceptions.ClientError: An error occurred (NoSuchBucket) when calling the PutObject operation: The specified bucket does not exist 


Мой settings.py:

ITEM_PIPELINES = { 
    'onvista.pipelines.OnvistaPipeline': 300, 
    #'scrapy.pipelines.files.S3FilesStore': 600 
} 

AWS_ACCESS_KEY_ID = 'key' 
AWS_SECRET_ACCESS_KEY = 'secret' 
FEED_URI = 's3://onvista.s3-website.eu-central-1.amazonaws.com/feeds/%(name)s/%(time)s.csv' 

FEED_FORMAT = 'csv' 


У кого-нибудь есть работа для меня, чтобы заглянуть?

ответ

3

Вместо ссылки на ведро Amazon S3 через его URL-адрес зарегистрированного URL-адреса, обратитесь к нему по имени.

scrapy Feed Exports документация дает пример:

s3://mybucket/scraping/feeds/%(name)s/%(time)s.json 

В вашем случае, что бы сделать это:

s3://onvista/feeds/%(name)s/%(time)s.json 
+0

Я попытаюсь это но как 'scrapy' различия между разными регионами - или имя ведра всегда уникально во всем мире? – Jan

+0

Названия ковша Amazon S3 уникальны по всему миру. Обычно лучше всего подключаться к региону, где находится ведро, но у них может быть некоторый код, который обрабатывает это. –

+0

Спасибо за ваши усилия. Должен добавить, что это, похоже, работает, только если ваше ведро ** не ** расположено во Франктуре, Германия. Я не знаю почему, но использование ведра в США сделало трюк. – Jan