Django upload image - From a form to Rackspace/S3 with no manipulation

前端 未结 2 1398
天涯浪人
天涯浪人 2021-01-19 01:10

I simply want to upload an image (JPG) using a form, then send that image to Rackspace \'Cloud Files\' or Amazon \'S3\'.

  • No manipulating the file.
  • No
相关标签:
2条回答
  • 2021-01-19 01:46

    How about ignoring python all together and just uploading directly to s3?

    You can configure your s3 bucket to disallow uploading any files larger than $X bytes.

    Here's a simple example to illustrate uploading directly to s3 (and ignoring your image width/height conditions)

    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>
    
    0 讨论(0)
  • 2021-01-19 01:47

    Sorted out. Found a simpler elegant approach and feel stupid for not getting to it earlier.

    file = request.FILES["item_photo"]
    file_name = "%s/%s" % (id, '600.jpeg')
    put_file(container, file_name, file.read())
    
    0 讨论(0)
提交回复
热议问题