OSS签名Header实现Demo(PHP)
概述
OSS的集成上传和下载提供了SDK可以直接使用,但实际使用中一些用户受限环境或者设备限制需要使用api方式来实现上传和下载,本文以PutObject接口为例,提供了PHP实现的demo。
注:建议优先使用OSS提供SDK,本文提供的只是签名实现上传demo,实际使用中需要结合业务来进行改动代码
详细信息
PutObject实现Demo(测试环境php5.6.30):
<?php function curlput($url,$data,$method='PUT',$bucket,$object,$accesskey ,$accesskeySecret){ $time = gmdate ("D, d M Y H:i:s T"); $str = "PUT\n\n"."application/json\n".$time."\n/".$bucket."/".$object; //echo($str); $signature = base64_encode(hash_hmac("sha1", $str, $accesskeySecret, true)); //echo($time); //echo($signature); $ch = curl_init(); //初始化CURL句柄 curl_setopt($ch, CURLOPT_URL, $url); //设置请求的URL curl_setopt($ch, CURLOPT_CUSTOMREQUEST, $method); //设置请求方式 $headers = array( "Date:".$time, 'Content-Type:application/json', "Authorization:OSS ".$accesskey.":".$signature ); curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);//设置HTTP头信息 curl_setopt($ch, CURLOPT_POSTFIELDS, $data);//设置提交的字符串 $document = curl_exec($ch);//执行预定义的CURL if(!curl_errno($ch)){ $info = curl_getinfo($ch); echo 'Took ' . $info['total_time'] . ' seconds to send a request to ' . $info['url']; } else { echo 'Curl error: ' . curl_error($ch); } curl_close($ch); return $document; } $accesskey ='xxx'; $accesskeySecret ='xxx'; $bucket = 'bucketname'; $object = 'mytest/2.txt'; $url = 'http://bucketname.oss-cn-hangzhou.aliyuncs.com/mytest/2.txt'; $data = "{wewwe:wewee}"; $return = curlput($url, $data, 'PUT',$bucket,$object,$accesskey,$accesskeySecret); var_dump($return); exit; ?>
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
OSS签名Header实现Demo(C#)
概述 OSS的集成上传和下载提供了SDK可以直接使用,但实际使用中一些用户受限环境或者设备限制需要使用api方式来实现上传和下载,本文以PutObject接口为例,提供了C#实现的demo。注:建议优先使用OSS提供SDK,本文提供的只是签名实现上传demo,实际使用中需要结合业务来进行改动代码详细信息PutObject实现demo(visual studio 2017,NET Framework4.0) using System; using System.Security.Cryptography; using System.Text; using System.Net; using System.IO; using System.Reflection; namespace Aliyun.OSS.Samples { class Program { //您的AccessKey public static string AccessKey = "xx"; //您的 AccessKeySecret public static string AccessKeySecret = "xx"; ...
- 下一篇
构建机器学习算法
本文首发自公众号:RAIS,点击直接关注。 前言 本系列文章为《Deep Learning》读书笔记,可以参看原书一起阅读,效果更佳。我们前面也介绍了一些构建机器学习或深度学习的一些内容,理解了其中部分原理和这么做的原因,接下来我们总结一下,跳出来从更高一点的方面去概括的看一看,也许会有不同的感觉。 构建机器学习算法 构建机器学习算法是有套路的:特定的数据集、代价函数、优化过程和模型。数据集比较好理解,没有数据模型就没办法训练,需要做的事情可能是把不好是数据处理成好的数据,这属于特征工程方面的问题,在深度学习研究者中也有大量的时间花在了特征工程上。代价函数,机器学习的训练模型的过程就是优化代价函数的过程,尽可能使代价函数减小。一般的优化算法就是找损失函数梯度为零,或者说找到最小值(极小值)的一组参数。代价函数一般与 损失函数 和 目标函数 进行一个对比,他们的区别是: 损失函数:通常定义在一个数据点上来计算误差; 代价函数:通常定义在整个训练集上来计算误差,是损失函数的平均值; 目标函数:训练期间优化任何功能的最通用的术语,包括目标损失和结构损失(如代价函数 + 正则化) 具体那个式子...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2整合Redis,开启缓存,提高访问速度
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7安装Docker,走上虚拟化容器引擎之路