पिछले जवाब के बाद से कुछ साल कर दिया गया है, और कुछ चीजें बदल गई (2015)। निक वेरविमेरेन ने एक ब्लॉग पोस्ट लिखा है कि यह कैसे किया जाए इसके एक अद्यतन संस्करण का विवरण दिया गया है। अपने ब्लॉग पोस्ट यहाँ है: https://www.nickv.codes/blog/scrapy-uploading-image-files-to-amazon-s3/
अपने settings.py फ़ाइल में :
ITEM_PIPELINES = {
'scrapy.contrib.pipeline.images.ImagesPipeline': 1
}
# This is going to be the amazon s3 bucket.
# You need to use the below format so Scrapy
# can parse it. !!Important don't forget to add
# the trailing slash.
IMAGES_STORE = 's3://my-bucket-name/'
# The amount of days until we re-download the image
IMAGES_EXPIRES = 180
# You can add as many of these as you want
IMAGES_THUMBS = {
'small': (50, 50),
'big': (300, 300)
}
AWS_ACCESS_KEY_ID = 'your-access-key'
AWS_SECRET_ACCESS_KEY= 'your-secret-access-key'
सुरक्षा मैं अमेज़न एडब्ल्यूएस इंटरफ़ेस में एक नया उपयोगकर्ता बनाने का सुझाव रखने के लिए और है कि उपयोगकर्ता केवल पढ़ने के लिए दे/अपनी बाल्टी को विशेषाधिकार लिखें।
अब हम कुछ संकुल कि डिफ़ॉल्ट रूप से Scrapy साथ नहीं आया था स्थापित करने की आवश्यकता:
pip install pillow
pip intall boto
तकिया छवि हेरफेर संभालती है और Boto पुस्तकालय S3 से कनेक्ट होता है प्रदान करेगा।
स्केपर आपके आइटम में छवि_रल्स कुंजी का उपयोग करने के लिए छवियों को देखने के लिए उपयोग करता है। यह छवि यूआरएल की एक सूची होनी चाहिए। एक बार डाउनलोड किया गया स्केपर छवियों के लिए छवि locaiton के विवरण लिखता है।
अपने items.py फाइल करने के लिए इन्हें जोड़ने के लिए मत भूलना:
class MyItem(scrapy.Item):
image_urls = scrapy.Field()
images = scrapy.Field()
अब भूल नहीं है वास्तव में अपने क्रॉल के दौरान image_urls कुंजी को भरने के लिए। एक बार जब आप अपनी साइट को क्रॉल अंतिम आउटपुट किसी खास आइटम के कुछ इस तरह दिखेगा:
'image_urls': [u'http://example.com/images/tshirt.jpg'],
'images': [{ 'checksum': '264d3bbdffd4ab3dcb8f234c51329da8',
'path': 'full/069f409fd4cdb02248d726a625fecd8299e6055e.jpg',
'url': 'http://example.com/images/tshirt.jpg'}],
अब आप S3 बाल्टी अमेज़न और एक नजर है पर जाएं। आपकी छवियां और थंबनेल सब वहाँ हैं!
फिर से, ब्लॉग पोस्ट के लिए निक वेरविमेरेन के लिए एक बड़ा धन्यवाद जो इस प्रश्न का उत्तर देता है!
मुझे उस पृष्ठ पर इंगित करें जिसे वे S3 पर अपलोड करने का समर्थन कहते हैं। मुझे यह नहीं मिल रहा है। कोई बात नहीं, मैंने इसे अब देखा। S3 पर अपलोड करने के लिए पायथन-बोटो का उपयोग करें, यह पूरी तरह से प्रलेखित है। – rantanplan
सहमत पाइथन-बोटो जाने का रास्ता है। –
धन्यवाद दोस्तों, लेकिन मैं कारण पूछ रहा था यह पहले से ही स्केपर में लागू किया गया है। –