django - 抓取 PDF 并将其上传到 Django 中的 S3
问题描述
我正在尝试从网站上抓取 PDF 并将它们上传到 S3 存储桶。我有一个可以使用 beautifulsoup4 在本地成功下载文件的工作刮板,以及一个使用 Boto 将文件上传到 S3 的工作脚本。我遇到的问题是一种跳过在本地下载它的中间步骤并将其直接下载到 S3 的方法。
抓取和上传到 S3 之间是否有良好的接口?
解决方案
我用这个功能实现了我的目标:
from StringIO import StringIO
from urllib2 import Request, urlopen
from boto.s3.connection import S3Connection, Bucket, Key
def scrape_to_s3(filename, origin_url):
remote_file = urlopen(Request(origin_url)).read()
memory_file = StringIO(remote_file)
conn = S3Connection(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
bucket = conn.get_bucket(settings.AWS_STORAGE_BUCKET_NAME)
k = Key(bucket)
k.key = "media/" + filename
k.set_contents_from_file(memory_file)
推荐阅读
- php - 在随机文本中的某些单词之前添加中断?
- python - 使用 keras 计算每个时期的 Fscore(不是批量)
- html - 如何缩放徽标块以完全适合导航栏?
- json - 有没有办法将数据从 json 文件导入 sqlite,其中表列名称与 json 文件中的键值不同?
- python - Tkinter 进入多个验证
- sql - PostgreSQL 在 date1 和 date2 之间选择日期
- css - angular/ng-bootstrap/css 如何防止将前 100px 用于任何显示,但设置为固定顶部的标题?
- r - 如何在 R 中为图形的背景部分着色以指示感兴趣的时间段
- ruby-on-rails - 通过一个控制器操作为两个模型创建 Rails 对象
- database - 问:具有一对多关系的多对多表