为什么在下载图像时使用Scrapy哈希网址,如此处https://doc.scrapy.org/en/latest/topics/media-pipeline.html所示,其中SHA1用于哈希网址以给出每个图像的名称?这样做有什么实际优势吗?
答案 0 :(得分:3)
我认为将文件存储为sha1哈希网址有任何重大优势 但是,有一些小优势:
/:.
等字符并不总是系统安全,文件名只是某些字符+ .jpg
非常方便。 我个人认为这是一个非常懒惰的解决方案。幸运的是,它可以延长,但它并不像应该的那样直截了当。
class MyImagesPipeline(ImagesPipeline):
def filename(url):
return url.replace(string.letters + '-_.', '')
def file_path(self, request, response=None, info=None):
# the original code
# image_guid = hashlib.sha1(to_bytes(url)).hexdigest()
# return 'full/%s.jpg' % (image_guid)
# our code
return 'full/' + self.filename(response.url)
def thumb_path(self, request, response=None, info=None):
return 'thumb/' + self.filename(response.url)
并在settings.py