Django 上传图像 - 从表单到 Rackspace/S3,无需任何操作

2023-11-30

我只想使用表单上传图像 (JPG),然后将该图像发送到 Rackspace“Cloud Files”或 Amazon“S3”。

  • 没有操作该文件。
  • 无需保存到磁盘,一切都保存到内存(托管在云服务器上)
  • 图片大小不会超过75kb

Update(两个注意事项):

  • 一:当数据从手机应用程序发布时,它也需要工作。
  • 二:需要发送到Rackspace Cloud Files以及S3(以CF开头)。

下面的代码可以工作,但它太重了。

import cloudfiles as cf
def uploadImage(request, id):

  cf_con = cf.get_connection(username='YYY', api_key='XXX', serviceNet=True)
  container = cf_con.get_container('container_name')

  file = request.FILES["item_photo"]
  f = StringIO(file.read())
  f = Image.open(f)

  ### Only works if I resize for some reason, otherwise uploads a broken file
  image = f.resize((600,600), Image.ANTIALIAS)
  o = StringIO()
  image.save(o, "JPEG", quality=80)
  image = o.getvalue()

  file_name  = "%s/%s" % (id, '600x600.jpeg')

  ### This simply uploads to Rackspace Cloud files.
  put_file(container, file_name, image)

非常感谢, 希望一切安好 ...

d.


完全忽略 python 并直接上传到 s3 怎么样?

您可以将 s3 存储桶配置为禁止上传任何大于 $X 字节的文件。

这是一个简单的例子来说明直接上传到s3(并忽略你的图像宽度/高度条件)

http://sente.cc/upload_to_s3.html

code:

<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  </head>
  <body>
  <h3>refresh the page after you've submitted to see your new image</h3>
    <div style="width:300px">
    <form action="http://s3.amazonaws.com/dev.sente" method="post" enctype="multipart/form-data">
      <fieldset>
      <input type="hidden" name="acl" value="public-read" /> <br />
      <i>name of key:</i><input type="text" name="key" readonly="true" value="image.jpg" /> <br />
      <input name="file" type="file" /> <br />
      <input name="submit" value="Upload" type="submit" />
    </fieldset>
    </form>
  </div>
    <br>
    <a href="http://s3.amazonaws.com/dev.sente/image.jpg">http://s3.amazonaws.com/dev.sente/image.jpg</a>
      <br>
      <a href="http://s3.amazonaws.com/dev.sente/image.jpg"><img src="http://s3.amazonaws.com/dev.sente/image.jpg"></a>
    </a>
  </body>
</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Django 上传图像 - 从表单到 Rackspace/S3,无需任何操作 的相关文章

随机推荐

  • 使用 Python Paramiko 执行命令并等待其完成

    我在 Paramiko 中编写了这段代码 ssh SSHClient ssh set missing host key policy AutoAddPolicy ssh connect hostname username user pass
  • 为什么 R 在文件路径中使用正斜杠 (/) 而不是反斜杠 (\)

    我正在教授在线课程 一个学生问我为什么 R 只使用 并不是 使用时在文件路径中read csv以及其他相关功能 我试着看看文档但它并没有真正提到任何相关内容 从来没有真正考虑过这个问题 因为我使用 Mac Mac 中的默认设置是 但在 Wi
  • ZipEntry 中的额外字节有何用途?

    用于 Zip 文件的 Java 库有一个选项ZipEntry for getExtra 返回byte or null ZipEntry 中的额外字节有何用途 我知道这个问题关于链接到的存档属性getExtra 但它没有解释该字段的其他用途
  • 如何将 kendo Ui 下拉列表选定值的 ID 传递到控制器?

    我正在尝试创建一个使用 KENDO UI Dropdown 的应用程序 问题是我想将视图中的值更新到数据库中 在选择下拉列表中的任何值时 与其关联的 ID 应传递到控制器以进行所需的数据库更新 但这里下拉列表的任何选择的 ID 都会将 nu
  • Alfresco 共享登录问题

    我发现本地安装的露天共享存在一些问题 当我尝试使用登录时 http localhost 8080 共享 它向我返回此错误消息 The remote server may be unavailable or your authenticati
  • 更新 github 上的分叉存储库

    我从 github 分叉了一个存储库 它称为 bootstrap 我已经克隆了我的叉子 git clone https github com Fowowski bootstrap git bootstrap 项目有一个 master 分支和
  • ‘$’不被识别为内部或外部命令..”

    我已经安装了 Node 并重新启动了计算机 将 C Program Files nodejs 添加到我的路径中 但是当我在命令提示符中运行 node version 来检查版本时 它返回 未被识别为内部或外部命令 可操作程序或批处理文件 你
  • SQL Server 中的 DECIMAL 和 NUMERIC 有什么区别吗?

    SQL Server 中的 DECIMAL 和 NUMERIC 数据类型有什么区别吗 什么时候应该使用 DECIMAL 什么时候应该使用 NUMERIC 他们是一样的 数字在功能上等同于十进制 MSDN 小数和数字
  • 使用 Moment.js 进行区域设置检测

    我在项目中使用 Moment js 并格式化日期 如下所示 var date moment unix 1318781876 return date format LLLL 目前文档声明支持多个区域设置 我想知道 moment js 是否会自
  • JavaFX 2:在 TableCell 中保存编辑

    在我的 JavaFX 程序中 我使用 TableCell 您可以在其中编辑值 就像 JavaFX 页面上的示例所示 例子 我使用这个函数来保存更改 函数在编辑单元格的 TextField 上设置 textField setOnKeyRele
  • 如何向socket通道写入数据

    是否有任何小型工作程序可以使用 java nio 从客户端接收数据并向客户端发送数据 实际上我无法写入套接字通道 但我能够读取传入的数据 如何向socket通道写入数据 谢谢 迪帕克 您可以将数据写入套接字通道 如下所示 import ja
  • 固定位置的div

    我有一个样式为position fixed 的div 我希望它向下滚动页面 但我不希望div 溢出到页脚中 我怎样才能做到这一点 提前致谢 肖恩 尝试这个 CSS body html height 100 margin 0 padding
  • jQuery 事件按键:按下了哪个键? A-Z,&@

    在 keydown 上我从 jQuery 得到以下信息 jQuery Event altKey false attrChange undefined attrName undefined bubbles true button undefi
  • Win 7 和 Win 8 中最大化时的无边界应用程序隐藏在任务栏后面

    我在 WPF 中创建了一个无边框窗口 我编写了一个事件来最大化窗口 但在最大化时 窗口的一部分有时隐藏在任务栏后面 片刻后出现在任务栏顶部 如何确保窗口每次都保持在任务栏的顶部 以下是我实施的方法 private void OnMaximi
  • Python WindowsError: [Error 3] 尝试重命名时系统找不到指定的文件

    我不明白出了什么问题 我以前使用过重命名没有任何问题 并且在其他类似问题中找不到解决方案 import os import random directory C whatever string alphabet abcdefghijklmn
  • 使用会话存储变量

    我有一个在每次换页时都会更新的变量 但我想以某种方式将值存储在第一次调用中 变量是例如 sizeOfSearch value HotelList activePropertyCount 第一次加载页面时 它是 933 在下一页上检索到相同的
  • Dataproc:配置 Spark 驱动程序和执行程序 log4j 属性

    正如前面的答案中所解释的 更改 Spark 集群的详细程度的理想方法是更改对应的log4j properties 但是 在dataproc上 Spark在Yarn上运行 因此我们必须调整全局配置而不是 usr lib spark conf
  • $.param() 生成的查询字符串包含数组的方括号

    我有一个这样的对象 var queryObject name Shwetanka subjects Mathematics Physics Computers stream science 当我使用此创建查询字符串时 param query
  • Spark 从不同模式目录读取数据帧

    我的spark程序必须从一个目录中读取 该目录有不同模式的数据 目录 子目录1 文件1 10 外星人1 11 鲍勃 目录 子目录2 文件2 蓝色 123 芝加哥2 红色 34 达拉斯 大约 50 个具有不同模式的目录 我的 Spark 作业
  • Django 上传图像 - 从表单到 Rackspace/S3,无需任何操作

    我只想使用表单上传图像 JPG 然后将该图像发送到 Rackspace Cloud Files 或 Amazon S3 没有操作该文件 无需保存到磁盘 一切都保存到内存 托管在云服务器上 图片大小不会超过75kb Update 两个注意事项