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> 过程简述:

  1. 创建AWS账户,免费注册,可免费使用一年(当然是最低级的功能试用)
  2. 根据账户创建KEY和ID
  3. 框架中引入AWS的SDK
  4. 用创建的KEY和ID实例化S3类: Aws\S3\S3Client
  5. 现在你就可以用他进行各种操作:上传、下载、删除、访问等等

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使用测试相关推荐

  1. java aws s3 文件上传_java-用于在S3中上传文件并在DB中写入记录的AWS API

    我需要限制一个AWS后端API,该API允许我的移动应用程序的用户在Amazon S3中上传文件(图像). 创建与Amazon S3直接接口的API并不是一种选择,因为我将无法将上传的文件与Dynam ...

  2. OSS(对象存储服务)与 AWS S3(Amazon Simple Storage Service)

    1. AWS S3对象存储 Amazon Simple Storage Service (Amazon S3) 是一种面向 Internet 的存储服务.您可以通过 Amazon S3 随时在 Web ...

  3. aws s3 php,Amazon S3 预签名 POSTs 与 AWS SDK for PHP 版本 3 - 适用于 PHP 的 AWS 开发工具包...

    AWS 文档中描述的 AWS 服务或功能可能因区域而异.要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门. 本文属于机器翻译版本.若本译文内容与英语原文存在差异,则一律以英文原文为准. Am ...

  4. java aws s3 下载文件_使用send_file从Amazon S3下载文件?

    为用户保持简单 我认为处理此问题的最佳方法是使用过期的S3网址 . 其他方法有以下问题: 文件首先下载到服务器,然后下载到用户 . 使用 send_data 不会产生预期的"browser ...

  5. s3 aws_您需要了解的有关AWS S3的所有信息

    s3 aws This article will provide an in-depth introduction to AWS S3 - the secure, scalable, and supe ...

  6. AWS S3云存储服务

    AWS S3云存储服务 1 S3概念及基础知识 2 S3的基本操作 3 S3数据安全 4 S3数据加密以及命令行CLI 4.1 S3加密工作原理 4.1.1 server端的加密 4.1.2 clie ...

  7. AWS s3 V4签名算法

    原创,转载请注明:http://www.jianshu.com/p/a6a02309190f 一.开篇说明: 以下思考方向,是以Android端为出发点(IOS同理) AWS:Amazon Web S ...

  8. .NET Core AWS S3云存储

    [导读]最近有需要用到AWS S3云存储上传附件,这里对利用.NET或.NET Core在调用SDK APi需要注意的一点小问题做个记录,或许能对后续有用到的童鞋提供一点帮助 Amazon Simpl ...

  9. aws s3 参与s3game寻找宝藏游戏挑战学习s3对象存储

    参考资料 Pirates S3game workshop http://s3game-level1.s3-website.us-east-2.amazonaws.com/level1.html htt ...

最新文章

  1. 父子表关联在窗体中的绑定显示和浏览
  2. 基于Service Mesh构建更现代的服务架构
  3. Mongodb的范式化和反范式化
  4. 学Python10大理由:功能多、资源多、挣钱多!
  5. Composer 中国全量镜像(二)
  6. OpenCASCADE绘制测试线束:几何命令之转换
  7. C++调用Matlab 注意事项
  8. Linux网络编程——tcp并发服务器(epoll实现)
  9. Jeecg-Boot 快速开发平台,新手入门教程
  10. mysql 创建表 引号_Mysql建表语句中显示双引号的方法介绍
  11. Objective-C 方法重载 - Selector 标识起决定作用
  12. Vultr 修改 Root 密码
  13. Python——KMeans(k均值聚类)实战(附详细代码与注解)
  14. python菜鸟教程100例-Python 基础教程 | 菜鸟教程
  15. 火了!GitHub标星三万,Python抢票神器
  16. 100个Python实战项目(九)制作贪吃蛇游戏(评论抽奖送书)
  17. 彻底删除oracle数据库
  18. 为什么电脑安装qq后显示没网络连接服务器,能上QQ电脑却无法上网怎么解决
  19. NGUI-动画Tween
  20. FPGA逻辑设计回顾(2)那些年学习FPGA较为常见的疑问?

热门文章

  1. 被资本和巨头炒上风口的无人便利店,会成为下一个无人货架吗?
  2. 微生物是如何影响身体健康的
  3. upstream与proxy_pass实现反向代理配置教程
  4. 中间件---Binlog传输同步---Canal
  5. 2022年中式烹调师(中级)复训题库及模拟考试
  6. 搜狗泛收录之搜狗域名就应该这么做
  7. IP-guard双机热备使用指南
  8. 无线服务器功能,索尼WG-C20无线服务器 功能介绍
  9. 中国电子实验记录(ELN)系统行业研究报告(2022版)
  10. 豆瓣电影R语言爬虫和数据分析.