关于阿里云oss获取sts凭证 app直传 python的实例

首先安装需要的模块

pip install aliyun-python-sdk-core
pip install aliyun-python-sdk-sts

获取需要的5个参数

getsts.py

from aliyunsdkcore import client
from aliyunsdkcore.profile import region_provider
from aliyunsdksts.request.v20150401 import AssumeRoleRequest
import json

def getStsToken():

  REGINID = 'cn-beijing'
  ENDPOINT = 'sts.cn-beijing.aliyuncs.com'
  region_provider.add_endpoint('Sts', REGINID, ENDPOINT)

  clt = client.AcsClient('LTAIcWKeZ0kxxxxx', 'Kax2Hx1Yf5cqi5nwmg4q5GSNExxxxx', REGINID)

  req = AssumeRoleRequest.AssumeRoleRequest()

  req.set_RoleArn('acs:ram::11605935xxxxxxxx:role/aliyunosstokengeneratorrole')

  req.set_RoleSessionName('external-username')
  #req.set_DurationSeconds(Integer) # past time
  #req.set_Policy('')

  resp = clt.do_action_with_exception(req)
  #print resp
  print type(resp)
  resp = json.loads(resp)
  print type(resp)
  token = dict(status='200', AccessKeyId=resp['Credentials']['AccessKeyId'], AccessKeySecret=resp['Credentials']['AccessKeySecret'], SecurityToken=resp['Credentials']['SecurityToken'], Expiration=resp['Credentials']['Expiration'])

  tokenString = json.dumps(token)
  #print tokenString

  return tokenString

返回的参数

{
  "AccessKeySecret": "4fSzVwox9v74qEjACfeWLH7CRrYkWG5z92ASJYrJMVRB",
  "status": "200",
  "SecurityToken": "CAISiwJ1q6Ft5B2yfSjIpKDUffTcn5xE3Y6OZFzF1nIMduQdvazc0Tz2IHpPenhuAu4bsPsxlG5Q7PkYlrh+W4NIX0rNaY5t9ZlN9wqkbtJdcTlALvhW5qe+EE2/VjTZvqaLEcibIfrZfvCyESOm8gZ43br9cxi7QlWhKufnoJV7b9MRLGLaBHg8c7UwHAZ5r9IAPnb8LOukNgWQ4lDdF011oAFx+wgdgOadupTFtEKD3QankLRO+tqtesGeApMybMslYbCcx/drc6fN6ilU5iVR+b1+5K4+om2c4IDDWAcMvUrYY7SMqII1NnxwYqkrBqhDt+Pgkv51vOPekYntwgpKJ/tSVynP3Q0ITXhd94kagAE7VUD9kf6ZSxi1buTiuoe28f2MAQANEQKP6wrgAKkwinaftUABZolATmUJiHOQZ8pfPgNvwlPrmyDvKe8iT1/uFTnE17UM4VGAgmBry3IGA+gM5IFSe8bQ13tJ6DJzlpuXXcsFxU6oN1zLcr6gKd3UZGGttGMgE9JTC+i7Hoa9Zg==",
  "Expiration": "2018-04-11T07:41:49Z",
  "AccessKeyId": "STS.Eca6NhrCejLefzt2rYzk1Riw3"
}

django 应用的views.py

import getsts

def test(request):

  req = getsts.getStsToken()

  print req
  return HttpResponse(req)

安卓或者苹果的app获得这5个参数就可以直接向oss上传图片了

以上这篇关于阿里云oss获取sts凭证 app直传 python的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • django 配置阿里云OSS存储media文件的例子

    1. 安装django-aliyun-oss2-storage包 linux上用 pip install django-aliyun-oss2-storage 无报错,顺利安装 windows上报错: (python3_sbs) F:\projects\virtualenv\python3_sbs\Scripts>pip install django-aliyun-oss2-storage Collecting django-aliyun-oss2-storage Using cached dj

  • 关于阿里云oss获取sts凭证 app直传 python的实例

    首先安装需要的模块 pip install aliyun-python-sdk-core pip install aliyun-python-sdk-sts 获取需要的5个参数 getsts.py from aliyunsdkcore import client from aliyunsdkcore.profile import region_provider from aliyunsdksts.request.v20150401 import AssumeRoleRequest import

  • Android实现阿里云oss上传流程解析

    购买了阿里云的oss空间,于是用它来存储图片,不过中间的使用算是出了些问题,导致很长的才成功. 不得不说,阿里云文档真的是无力吐槽...乱七八糟的.我完全是东拼西凑,才完成的图片上传功能. 走了很多的弯路,今天来记录下. 服务器上传: 阿里云上传分服务器上传和客户端上传,首先要分清,因为两边有差别的,服务器的上传简单很多,官方给的下载下来,输入配置的参数accessKeyId 和accessKeySecret 还有bucketName 就能够上传成功,很简单,这里也就不细说了. 客户端上传: 这

  • flutter直接上传文件到阿里云oss

    代码实现 以下是我写的一个上传oss的类,只需要替换ossAccessKeyId, ossAccessKeySecret, bucket, url, expiration这几个参数就可以直接实现上传 import 'dart:convert'; import 'dart:io'; import 'dart:math'; import 'package:crypto/crypto.dart'; import 'package:dio/dio.dart'; class UploadOss { sta

  • yii2.0整合阿里云oss的示例代码

    主要思路,首先用composer下载阿里云oss的php sdk,然后自定义一个组件,就能够在全局调用阿里云oss了. 具体步骤如下: 1 到阿里云官网找到php sdk,网址为https://help.aliyun.com/document_detail/32099.html?spm=5176.87240.400427.40.s8EbEH 2 使用composer安装,在项目目录下(basic/)输入: composer require aliyuncs/oss-sdk-php 安装完成以后,

  • yii2.0整合阿里云oss上传单个文件的示例

    上一篇文章已经介绍了如何整合阿里云oss,这一篇主要介绍上传文件到阿里云oss. 主要思路:首先文件要上传到服务器,然后把服务器里边的文件传到阿里云oss,成功以后就把文件信息写入数据库,失败了就删除服务器的文件. 主要步骤: 0 介绍几个oss的概念. accessKeyId     ==>> 可以理解为访问阿里云oss的账号 accessKeySecret ==>> 可以理解为访问阿里云oss的密码 bucket          ==>> 可以理解为文件在保存的根

  • SpringBoot+阿里云OSS实现在线视频播放的示例

    阿里云 OSS 是一种云存储技术,你可以理解为云盘,我们的目标是将视频存储到云端,然后在前端读取并播放视频. OSS 首先登陆首页,创建一个存储桶:https://oss.console.aliyun.com 然后找到读写权限: 将读写权限设置为公共读即可: 在 RAM 中新建一个用户: 为其添加权限,选择 OSS 的权限: 然后点进去这个用户,找到 AccessKey: 创建之后记下来 secret ,因为他只出现一次,如果没记住也没事,可以重新创建新的 key. 下面开始编写服务端代码: P

  • python 阿里云oss实现直传签名与回调验证的示例方法

    签名 import base64 import json import time from datetime import datetime import hmac from hashlib import sha1 access_key_id = '' # 请填写您的AccessKeySecret. access_key_secret = '' # host的格式为 bucketname.endpoint ,请替换为您的真实信息. host = '' # callback_url为 上传回调服务

  • 阿里云OSS实践文件直传基于服务端

    目录 前言 优缺点 流程 逻辑拆解 代码实现 OSS 配置 policy 内容 有效期 文件名 转化 policy 进一步分析 完整代码 前言 在日常开发中,客户端上传文件的一般流程是:客户端向服务端发送文件,再由服务端将文件转储到专门的存储服务器或云计算厂商的储存服务(例如阿里云 OSS)上,这样做的一个弊端是上传环节占用服务器的带宽,个位数的并发上传就能把带宽占满,从而导致用户体验下降.而如果直接将文件从客户端直传到第三方的存储服务上,就可以避免这个问题. ​ 本文以阿里云 OSS(Obje

  • Yii2.0使用阿里云OSS的SDK上传图片、下载、删除图片示例

    之前从没接触过Yii,借助的各方资源来做的这个整合阿里云OSS的SDK上传图片实例,如果有不正之处请指出! 前面参照了weinirumo 的介绍,大家可以自行去查看. 好了,下面开始进入主题: 准备工作:需要使用composer执行命令,如果没有安装composer的需要提前安装,参考文档:composer安装流程 1.项目目录结构 我使用的是基础版,只有后台目录,请自行对照自己的项目目录结构,会用到以下的几个目录: 2.在项目根目录下运行cmd命令 3.执行composer命令 切换到中国国内

  • php版阿里云OSS图片上传类详解

    本文实例讲述了php版阿里云OSS图片上传类.分享给大家供大家参考,具体如下: 1.阿里云基本函数 /** * 把本地变量的内容到文件 * 简单上传,上传指定变量的内存值作为object的内容 */ public function putObject($imgPath,$object) { $content = file_get_contents($imgPath); // 把当前文件的内容获取到传入文件中 $options = array(); try { $this->ossClient->

随机推荐