首页 » SEO优化 » phpawss3技巧_存储_AWS的S3实践之路

phpawss3技巧_存储_AWS的S3实践之路

访客 2024-11-05 0

扫一扫用手机浏览

文章目录 [+]

当今的开拓基本已经基于云开拓了,遥想当年自己也曾扛过交流机、抬过做事器和防火墙。
读书人一声长叹,时期变革弹指一挥间。
好吧,过去心不可得。

说到云上存储,当属阿里云的OSS和亚马逊的S3。

phpawss3技巧_存储_AWS的S3实践之路

本日就入个S3的门,揭开它的面纱。

phpawss3技巧_存储_AWS的S3实践之路
(图片来自网络侵删)

资料:

1、利用 AWS SDK for Java 的 Amazon S3示例

https://docs.aws.amazon.com/zh_cn/sdk-for-java/v1/developer-guide/examples-s3.html

2、适用于 Java 的 AWS 开拓工具包

https://aws.amazon.com/cn/sdk-for-java/

3、AWS SDK for Java Documentation Examples

https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/java

实操:

下载:https://github.com/awsdocs/aws-doc-sdk-examples.git以java为例,通过api上传图片到S3测试,路径:aws-doc-sdk-examples\java\example_code\s3类:PutObject的实行mian方法,buckent_name和file_path按实际情形填写。

4、main方法报错:Access Denied

办理:https://aws.amazon.com/cn/premiumsupport/knowledge-center/s3-access-denied-error-kms/

4.1 打开IAM掌握台,创建用户

备注:“访问秘钥ID和私有访问秘钥“要记录下来,在SDK访问S3的时候利用。

4.2 main方法依旧报错:Access Denied,何解?

看了一些资料,加bucket的策略,如下:

4.3 增加策略仍旧不可以,当一个问题一贯没有办理,一定忽略了某些关键问题点,

在sdk的源码中,只有资源上传的功能,但是鉴权的机制在哪?

如何掌握用户访问不同的s3资源?

于是乎,查看源代码中哪些类与鉴权有关系,考试测验一下App.java,报错:

Exception in thread "main" java.lang.IllegalArgumentException: profile file cannot be null

顺藤摸瓜,stack overflow帮了忙,如下:

https://stackoverflow.com/questions/41796355/aws-error-downloading-object-from-s3-profile-file-cannot-be-null

4.4 Credentials的格式如何定义

官网:https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/credentials.html

[default]aws_access_key_id={YOUR_ACCESS_KEY_ID}aws_secret_access_key={YOUR_SECRET_ACCESS_KEY}[profile2]aws_access_key_id={YOUR_ACCESS_KEY_ID}aws_secret_access_key={YOUR_SECRET_ACCESS_KEY}

如上格式,创建credentials文件,内容为创建用户的私钥,放在~/.aws/下即可。

5、S3上传的图片通过浏览器访问,报错如下:

5.1 增加桶策略

{"Version": "2012-10-17","Id": "Policy1647532048639","Statement": [{"Sid": "Stmt1647532038507","Effect": "Allow","Principal": {"AWS": "arn:aws:iam::111111111:user/s3-proxy"},"Action": "s3:","Resource": "arn:aws:s3:::xx-22"},{ "Sid": "PublicRead", "Effect": "Allow", "Principal": "", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::xxxx-22/"}]}

5.2 编辑“阻挡公有访问(存储桶设置)”

重复5.1 步骤,保存成功,重新访问URL即可。

反思:

在鉴权的时候,走了一些弯路,如果先大体把官网的关于sdk-for-java干系的文档看一下,会更顺一些。

参考资料:

官方S3文档:https://aws.amazon.com/cn/premiumsupport/knowledge-center/s3-access-denied-error-kms/

标签:

相关文章

QQ聊天恶搞代码技术背后的趣味与风险

人们的生活越来越离不开社交软件。在我国,QQ作为一款历史悠久、用户众多的社交平台,深受广大网民喜爱。在QQ聊天的过程中,恶搞代码的...

SEO优化 2025-03-02 阅读1 评论0

Python代码截屏技术与应用的完美融合

计算机屏幕截图已经成为人们日常生活中不可或缺的一部分。无论是分享工作成果、记录游戏瞬间,还是保存网页信息,屏幕截图都发挥着重要作用...

SEO优化 2025-03-02 阅读1 评论0

QQ无限刷礼物代码技术突破还是道德沦丧

社交平台逐渐成为人们生活中不可或缺的一部分。QQ作为我国最具影响力的社交软件之一,其丰富的功能吸引了大量用户。近期有关QQ无限刷礼...

SEO优化 2025-03-02 阅读1 评论0