scrapy 2.3 支持的存储
文件系统存储
文件使用 SHA1 hash 文件名的URL。
例如,以下图像URL::
http://www.example.com/image.jpg
谁的 SHA1 hash
是::
3afec3b4765f8f0a07b78f98c07b83f013567a0a
将下载并存储在以下文件中::
<IMAGES_STORE>/full/3afec3b4765f8f0a07b78f98c07b83f013567a0a.jpg
在哪里?
-
<IMAGES_STORE>
目录是否在中定义? IMAGES_STORE
图像管道的设置。 - full 是一个子目录,用于从缩略图中分离完整图像(如果使用)。有关详细信息,请参阅 图像的缩略图生成 .
FTP服务器存储
2.0 新版功能.
FILES_STORE
和 IMAGES_STORE
可以指向FTP服务器。Scrapy会自动将文件上传到服务器。
FILES_STORE
和 IMAGES_STORE
应以下列形式之一书写:
ftp://username:password@address:port/path
ftp://address:port/path
如果 username
和 password
不提供,它们是从 FTP_USER
和 FTP_PASSWORD
分别设置。
FTP支持两种不同的连接模式:主动或被动。Scrapy默认使用被动连接模式。要使用活动连接模式,请设置 FEED_STORAGE_FTP_ACTIVE
设置为 True
.
Amazon S3存储
FILES_STORE
和 IMAGES_STORE
可以表示AmazonS3存储桶。Scrapy会自动将文件上传到bucket。
例如,这是一个有效的 IMAGES_STORE
价值:
IMAGES_STORE = 's3://bucket/images'
您可以修改用于存储文件的访问控制列表(ACL)策略,该策略由 FILES_STORE_S3_ACL
和 IMAGES_STORE_S3_ACL
设置。默认情况下,acl设置为 private
. 要使文件公开,请使用 public-read
政策:
IMAGES_STORE_S3_ACL = 'public-read'
有关详细信息,请参阅 canned ACLs 在AmazonS3开发者指南中。
因为下流的东西 botocore
在内部,您还可以使用其他S3,如存储。像自我托管这样的存储 Minio 或 s3.scality .
您所需要做的就是在Scrapy设置中设置端点选项:
AWS_ENDPOINT_URL = 'http://minio.example.com:9000'
对于自托管,您可能觉得不需要使用SSL,也不需要验证SSL连接::
AWS_USE_SSL = False # or True (None by default)
AWS_VERIFY = False # or True (None by default)
谷歌云存储
FILES_STORE
和 IMAGES_STORE
可以表示一个谷歌云存储桶。Scrapy会自动将文件上传到bucket。(需要 google-cloud-storage )
例如,这些是有效的 IMAGES_STORE
和 GCS_PROJECT_ID
设置::
IMAGES_STORE = 'gs://bucket/images/'
GCS_PROJECT_ID = 'project_id'
有关身份验证的信息,请参见 documentation .
您可以修改用于存储文件的访问控制列表(ACL)策略,该策略由 FILES_STORE_GCS_ACL
和 IMAGES_STORE_GCS_ACL
设置。默认情况下,acl设置为 '' (空字符串)这意味着云存储将bucket的默认对象acl应用于该对象。要使文件公开,请使用 publicRead
政策:
IMAGES_STORE_GCS_ACL = 'publicRead'
有关详细信息,请参阅 Predefined ACLs 在谷歌云平台开发者指南中。