Scrapy ImagesPipeline не активирован для Amazon S3 - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу хранить изображения непосредственно в Amazon S3. Вот мои settings.py:

ITEM_PIPELINES = {
    'car_scraper.pipelines.MongoPipeline': 10,
    'car_scraper.pipelines.SubscriptionsPipeline': 20,
    'car_scraper.pipelines.PhotosPipeline': 1,
}

IMAGES_STORE = 's3://dev-images/photos'

AWS_ACCESS_KEY_ID = '...'
AWS_SECRET_ACCESS_KEY = '...'

Но когда я запускаю сканирование, я вижу в журналах:

INFO: Enabled item pipelines:
['car_scraper.pipelines.MongoPipeline',
 'car_scraper.pipelines.SubscriptionsPipeline']

И если я изменю IMAGES_STORE

IMAGES_STORE = '/Users/user/Documents/img_car'

в логах:

INFO: Enabled item pipelines:
['car_scraper.pipelines.PhotosPipeline',
 'car_scraper.pipelines.MongoPipeline',
 'car_scraper.pipelines.SubscriptionsPipeline']

и фотографии сохранены. Почему не запускается PhotosPipeline для S3?

PhotosPipeline:

Class PhotosPipeline(ImagesPipeline):
    def get_media_requests(self, item, info):
        for image_url in item['photos']:
            yield scrapy.Request(image_url)

    def item_completed(self, results, item, info):
        photos = [x['path'] for ok, x in results if ok]
        if not photos:
            raise DropItem("Item contains no photos")
        item['photos'] = photos
        return item
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...