# -*- coding: utf-8 -*-
# by dl
import logging
import boto3
from botocore.exceptions import ClientError#已存在于服务器的文件
def upload_file(file_name, bucket, object_name=None):"""Upload a file to an S3 bucket:param file_name: File to upload:param bucket: Bucket to upload to:param object_name: S3 object name. If not specified then file_name is used:return: True if file was uploaded, else False"""# If S3 object_name was not specified, use file_nameif object_name is None:object_name = file_name# Upload the file# s3_client = boto3.client('s3')ACCESS_KEY = ''SECRET_KEY = ''s3_client = boto3.client('s3',aws_access_key_id=ACCESS_KEY,aws_secret_access_key=SECRET_KEY,# 下面给出一个endpoint_url的例子endpoint_url='')try:#已存在文件response = s3_client.upload_file(file_name, bucket, object_name)except ClientError as e:logging.error(e)return Falsereturn Trueprint(upload_file(file_name='1.gif',bucket='',))flask 直接上传文件流
#flask 文件文件对象
@app.route('/boto3', methods=['POST'])
def boto3():from CommonClass.JdOssC import JdOssf = request.files['file']print(f.filename)JdOss().upload_file(file_name=f,object_name=f.filename)return 'ok'import os
from Config import config
import boto3class JdOss:def __init__(self,access_key=config.access_key,secret_key=config.secret_key,bucket_name=config.bucket_name,endpoint_url=config.endpoint_url):self.access_key = access_keyself.secret_key = secret_keyself.endpoint_url = endpoint_urlself.bucket_name = bucket_nameself.s3_client = boto3.client('s3',aws_access_key_id=access_key,aws_secret_access_key=secret_key,endpoint_url=endpoint_url)# 上传文件(file_name:上传的文件路径  object_name:要修改的名字)def upload_file(self, file_name, object_name=None):# 不传对象名 就是默认文件名if object_name is None:object_name = file_name# try:# self.s3_client.upload_file(file_name, self.bucket_name, object_name)r= self.s3_client.upload_fileobj(file_name, self.bucket_name, object_name)print(r)# except:#     print('失败')#     return Falseprint('成功')return True# 上传文件对象(file_name:上传的文件路径  object_name:要修改的名字)def upload_fileobj(self, file_obj, object_name=None):# 不传对象名 就是默认文件名if object_name is None:object_name = file_obj.filenametry:self.s3_client.upload_fileobj(file_obj, self.bucket_name, object_name)except:print('失败')return Falseprint('成功')return True# 下载文件(file_name:要下载的文件名  object_name:要修改的名字)def download_file(self, file_name, object_name=None):# 不传对象名 就是默认文件名if object_name is None:object_name = file_nametry:self.s3_client.download_file(self.bucket_name,file_name,object_name)except:print('失败')return Falseprint('成功')return True# 获取存储桶中的所有文件名def get_fileList(self):file_list = []objs = self.s3_client.list_objects(Bucket=self.bucket_name)# while 'Contents' in objs.keys():objs_contents = objs['Contents']for i in range(len(objs_contents)):filename = objs_contents[i]['Key']file_list.append(filename)print(file_list)return file_listif __name__ == '__main__':basepath = os.path.dirname(__file__)# 上传文件# JdOss().upload_file(os.path.join(basepath, 'static','text006.csv').replace('\\', '/'),"007.csv")# 下载文件JdOss().download_file("31931655_p0.jpg")# 获取所有文件# JdOss().get_fileList()pass

JD boto3 flask 上传 demo相关推荐

  1. jquery.form 和MVC4做无刷新上传DEMO

    jquery.form 和MVC4做无刷新上传DEMO HTML: <script src="~/Scripts/jquery-1.10.2.min.js"></ ...

  2. java 中传输文件的代码_java文件上传Demo(必看篇)

    说到文件上传我们要做到: 1.引入两个包:commons-fileupload-1.2.1.jar和commons-io-1.3.2.jar 2.将form改为上传文件模式:enctype=" ...

  3. python flask上传文件_Python之利用Flask上传文件、Flask_RESTful

    Flask上传文件 回顾知识点form表单中,一旦涉及到上传文件就要就必须要有enctype属性,而且必须等于multipart/form-data.而且提交方式为'post',method = 'p ...

  4. python flask 上传下载 api_python – 使用Flask上传和下载文件

    PythonAnywhere dev这里.这是一个关于Flask和Web开发的一个很好的问题,而不是我们的系统特定的,所以我会尝试给出一个没有任何特定的通用答案:-) 有一些事情我需要知道,给出一个明 ...

  5. python flask 上传文件到服务器

    今天要做一个简单的页面,可以实现将文件 上传到服务器(保存在指定文件夹) #Sample.py # coding:utf-8from flask import Flask,render_templat ...

  6. python 上传文件夹,python – 使用Flask上传文件夹/文件

    我可以通过这个例子上传一个带烧瓶的文件: 但我不知道如何上传文件夹或一些文件.我搜索过,我发现了这个: Uploading multiple files with Flask.最后,我得到了如何上传多 ...

  7. Flask上传文件到本地(底层方法实现)。

    首先 New Project 一下 创建一个 Flask 项目 如果是社区版的话,就硬创建一个自己的 Flask 项目,自己创Templates,static,app 首先 在 templates ( ...

  8. FLASK上传时有中文文件名的解决方案

    2019独角兽企业重金招聘Python工程师标准>>> 场景是在nginx+uwsgi+flask时上传文件名为中文时nginx报502错,设置各各地方为utf8后无果,最后妥协了. ...

  9. python flask上传文件_Python-Flask-文件上传

    一.Python-Flask-文件上传 1.简化版文件上传 创建目录: cd 5-4 mkdir -p uploads #必须先创建uploads文件夹. upload.html Title 文件上传 ...

最新文章

  1. it专员职责_网络IT专员岗位职责
  2. pintos实验三文档_实验室如何实现智能、数字化管理?
  3. 2014-08-26 遇到的小问题
  4. 【转载】移动端布局概念总结
  5. 《那些年啊,那些事——一个程序员的奋斗史》——86
  6. 深度学习新星 | 图卷积神经网络(GCN)有多强大?
  7. Protel99SE覆铜笔记
  8. Mybatis注解实现DAO层
  9. selenium设置浏览器的大小和位置
  10. 浅谈soul网关架构图
  11. Macbook电池出现“建议维修”的解决办法
  12. RTX3060是什么级别显卡 RTX3060显卡什么水平
  13. web前端开发相关网站
  14. 【Jenkins+青藤云】基于Jenkins部署青藤云镜像扫描插件(2)—部署问题解决
  15. OpenPifPaf decode源码解析
  16. 算法题——给你一个字符串s,找到s中最长的回文子串。
  17. ​IT 管理进化论:若运维是眼前的苟且,运营则是诗和远方
  18. Error querying database. Cause: java.sql.SQLException: Error setting driver on UnpooledDataSource.
  19. 软件技术的现状以及未来发展趋势
  20. 前端特效CSS样式樱花

热门文章

  1. MySQL和Linux试题_Linux运维必会的MySql题之(一)
  2. c语言编程员工管理的代码,员工信息管理完整(含附源代码).doc
  3. php filter 文件包含,php://filter(文件包含漏洞利用)及php://input
  4. redis常用命令getex_Redis常用命令详细介绍(摘抄)
  5. Java没有panel_java panel 问题
  6. 使用lucce分词怎么_真小叮当深度学习:自然语言处理(三)文本处理之分词专题...
  7. 华为合作oppovivo小米鸿蒙,华为鸿蒙成功的关键:要让小米、OPPO、VIVO都用上鸿蒙...
  8. html5父子页面数据传递,使用iframe标签嵌套页面时 如何进行父子页面通讯/传值...
  9. 每天一个linux命令(2):cd命令
  10. react native 开发笔记(二)