Amazon AWS S3 for PHP 的API使用测试
1.php> 使用背景:
开发环境:thinkphp框架
官网手册好和官方S3的API:
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/service-s3.html
http://docs.aws.amazon.com/aws-sdk-php/v2/api/class-Aws.S3.S3Client.html
2.php> 过程简述:
- 创建AWS账户,免费注册,可免费使用一年(当然是最低级的功能试用)
- 根据账户创建KEY和ID
- 框架中引入AWS的SDK
- 用创建的KEY和ID实例化S3类: Aws\S3\S3Client
- 现在你就可以用他进行各种操作:上传、下载、删除、访问等等
3.php> 主要说一下这个地方我遇到的问题:
导入SDK包:
因为其自带命名空间且与Thinkphp里的空间不能融合,也与其命名规范不相容,所以自能作为第三方类库,放在文件夹\Library\Vendor中,这里需要用到php里的自动加载(autoload)机制:
在使用的函数开头首先使用
require_once("../inc/aws/aws-autoloader.php");
对应的加载原理:
spl_autoload_register(function ($class) use ($mapping) {if (isset($mapping[$class])) {require $mapping[$class];}
}, true);
插一句题外话,php的debug功能还不是很完善,楼主也是个半吊子,开始引入时一直超时,我以为是自动加载机制出现的问题,折腾了一天,把php命名空间和自动加载以及thinkphp的第三方类库翻了一遍,最后令楼主吐血的是,居然是IAM没有开相应的S3权限,IAM在创建的时候默认是没有权限的,所以最后找到原因后,楼主郁闷了好久,而且一定要保证网速好,这也是另一个血的教训。。。。
所以
IAM要开通相应的权限
网速牛逼,这样才能专心修改程序问题,要不然会被弄得相当糊涂
- 跨域请求(CORS):
网站涉及用JS远程调用,查过好多方案不说了,说解决方案:
想到S3作为专门的远程存储桶,那么它必然会有跨域请求的问题,果然可以直接在S3的控制台配置
进入S3的console->Properties->Permissions->Edit CORS Configuration
<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"><CORSRule><AllowedOrigin>*</AllowedOrigin><AllowedMethod>GET</AllowedMethod><MaxAgeSeconds>3000</MaxAgeSeconds><AllowedHeader>Authorization</AllowedHeader></CORSRule>
</CORSConfiguration>
这是一个XML,这样所有的GET过来的请求响应,就不会被浏览器拦截,当然我们也可以设置更多的rule,来适配各种需求,问题就解决了
Amazon AWS S3 for PHP 的API使用测试相关推荐
- java aws s3 文件上传_java-用于在S3中上传文件并在DB中写入记录的AWS API
我需要限制一个AWS后端API,该API允许我的移动应用程序的用户在Amazon S3中上传文件(图像). 创建与Amazon S3直接接口的API并不是一种选择,因为我将无法将上传的文件与Dynam ...
- OSS(对象存储服务)与 AWS S3(Amazon Simple Storage Service)
1. AWS S3对象存储 Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务.您可以通过 Amazon S3 随时在 Web ...
- aws s3 php,Amazon S3 预签名 POSTs 与 AWS SDK for PHP 版本 3 - 适用于 PHP 的 AWS 开发工具包...
AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Am ...
- java aws s3 下载文件_使用send_file从Amazon S3下载文件?
为用户保持简单 我认为处理此问题的最佳方法是使用过期的S3网址 . 其他方法有以下问题: 文件首先下载到服务器,然后下载到用户 . 使用 send_data 不会产生预期的"browser ...
- s3 aws_您需要了解的有关AWS S3的所有信息
s3 aws This article will provide an in-depth introduction to AWS S3 - the secure, scalable, and supe ...
- AWS S3云存储服务
AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...
- AWS s3 V4签名算法
原创,转载请注明:http://www.jianshu.com/p/a6a02309190f 一.开篇说明: 以下思考方向,是以Android端为出发点(IOS同理) AWS:Amazon Web S ...
- .NET Core AWS S3云存储
[导读]最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助 Amazon Simpl ...
- aws s3 参与s3game寻找宝藏游戏挑战学习s3对象存储
参考资料 Pirates S3game workshop http://s3game-level1.s3-website.us-east-2.amazonaws.com/level1.html htt ...
最新文章
- 父子表关联在窗体中的绑定显示和浏览
- 基于Service Mesh构建更现代的服务架构
- Mongodb的范式化和反范式化
- 学Python10大理由:功能多、资源多、挣钱多!
- Composer 中国全量镜像(二)
- OpenCASCADE绘制测试线束:几何命令之转换
- C++调用Matlab 注意事项
- Linux网络编程——tcp并发服务器(epoll实现)
- Jeecg-Boot 快速开发平台,新手入门教程
- mysql 创建表 引号_Mysql建表语句中显示双引号的方法介绍
- Objective-C 方法重载 - Selector 标识起决定作用
- Vultr 修改 Root 密码
- Python——KMeans(k均值聚类)实战(附详细代码与注解)
- python菜鸟教程100例-Python 基础教程 | 菜鸟教程
- 火了!GitHub标星三万,Python抢票神器
- 100个Python实战项目(九)制作贪吃蛇游戏(评论抽奖送书)
- 彻底删除oracle数据库
- 为什么电脑安装qq后显示没网络连接服务器,能上QQ电脑却无法上网怎么解决
- NGUI-动画Tween
- FPGA逻辑设计回顾(2)那些年学习FPGA较为常见的疑问?