scrapy 2.3 支持的存储

2021-06-17 11:55 更新

文件系统存储

文件使用 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 在谷歌云平台开发者指南中。

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号