百度360必应搜狗淘宝本站头条
当前位置:网站首页 > IT知识 > 正文

存储_AWS的S3实践之路(aws 文件存储)

liuian 2025-06-08 22:36 32 浏览

前言

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

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

今天就入个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


实操:

  1. 下载:https://github.com/awsdocs/aws-doc-sdk-examples.git
  2. 以java为例,通过api上传图片到S3测试,路径:aws-doc-sdk-examples\java\example_code\s3
  3. 类: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/

相关推荐

电脑开不了机怎么办显示英文字母

win7操作系统电脑在开机的时候屏幕界面出现CLIENTMACADDR,然后就一直停在了这个界面,要等很长时间才能进入系统登入界面。出现这样问题的原因是什么?这是因为网卡启用了BOOTROM芯片...

win7此windows副本不是正版(win7 此windows副本不是正版)

win7系统提示副本不是正版解决方法:1.打开设备,调出运行窗口,输入命令“cmd”,并按下回车键;2.这时命令提示符窗口便会自动弹出;3.输入命令“SLMGR-REARM”,再按下回车键;4.命令...

win7安装选版本(win7选哪个版本)

Win7旗舰版更好用。Windows7旗舰版属于微软公司开发的Windows7系统系列中的终结版本,是为了取代WindowsXP系统的新系统,Windows7的版本还有简易版、家庭普通版、家庭高...

电脑psd文件用什么打开(电脑上psd文件打不开)
电脑psd文件用什么打开(电脑上psd文件打不开)

具体操作步骤如下:1、首先鼠标右键单击PSD格式的图片,然后点击“打开方式”选项。2、然后在该页面中点击“选择默认程序”选项。3、之后在该页面中点击“浏览”选项。4、然后在该页面中点击选择要打开的软件后点击“确定”选项即可打开了。PSD文...

2026-01-14 01:05 liuian

qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
  • qq浏览器打开网址(qq浏览器打开网址被禁止访问怎么办)
office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
  • office2010免费版激活(office2010 免激活)
常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
  • 常用的电脑快捷键有哪些(电脑常使用的快捷键)
tplink登陆密码(tplink登录密码)

TP-LINK路由器默认的出厂登录用户名和密码均为小写字母“admin”。该密码是保护路由器免遭攻击的重要密码,忘记了登录的管理员密码,只能通过路由器的Reset复位键(部分路由器为Reset小孔)进...

windows8中文版激活(windows8激活怎么操作)

要激活Windows8操作系统,可以按照以下步骤进行操作:1.打开“开始”菜单,点击桌面图标,进入桌面模式。2.从屏幕右侧滑动以打开“设置”栏,然后点击“更改PC设置”。3.在左侧导航栏中选择...

手机app怎么下载(手机app怎么下载安装)
手机app怎么下载(手机app怎么下载安装)

每个手机上都有下载APP的应用商店,以下面为例演示,下载方法如下:1、首先在手机上找到并打开应用商店。2、接下来进入到应用商店之后,选择红色箭头所指处的搜索栏,搜索需要下载的应用。3、接下来会弹出搜索的应用,点击红色箭头所...

2026-01-13 23:37 liuian

dell电脑蓝屏开不了机怎么办

电脑蓝屏的解决方法,先软件后硬件,一般软件问题比较多一点。1、最后一次正确的配置:在开机启动未进入到操作系统之前我们不停按下F8键,选择“最后一次正确的配置”然后回车即可。2、安全模式:如果“最后一次...

如何单独改c盘为mbr模式(如何c盘改为mbr分区 免格式化)

   硬盘分为两种格式的分区,一种是GPT,一种是MBR,一般win7或者以下系统是安装在MBR分区中,而win8和win10一般是安装在gpt分区中的,这两个分区格...

win7activation解压密码(windows7解压文件去哪里了)

若使用的是vivo手机,忘记vivo账号密码、锁屏密码,可携带手机、身份证、有效的购机凭证前往服务中心处理,进入浏览器搜索vivo官网--服务--服务中心--查看全部--选择省市查询当地的服务中心地址...

移动固态硬盘排行榜(移动固态硬盘排行榜前十名)

西部数据。西部数据MyPassport随行SSD版。西数最主打的移动固态硬盘,如果在大促期间可以在900元以下的价格买到,搭载了NVMe技术,最大读速1050M/S,这是主流大厂速度在1050M/S...

u盘怎样安装系统(u盘怎样安装系统驱动)
  • u盘怎样安装系统(u盘怎样安装系统驱动)
  • u盘怎样安装系统(u盘怎样安装系统驱动)
  • u盘怎样安装系统(u盘怎样安装系统驱动)
  • u盘怎样安装系统(u盘怎样安装系统驱动)