存储桶策略允许上传某些文件类型

时间:2019-11-25 17:23:34

标签: amazon-s3 minio

我已经构建了import { createAppContainer, DrawerNavigator } from 'react-navigation'; import { createStackNavigator } from 'react-navigation-stack'; import Home from "./src/screens/Home.js"; import first from "./src/screens/first.js"; import React from 'react'; class App extends React.Component{ render(){ return( <RootStack/> ) } } const RootStack = createStackNavigator ({ Home:{screen:Home, navigationOptions: { header: null }}, first:{screen:first, navigationOptions: { header: null }} }); //const App = createAppContainer(RootStack); export default App; 服务器,用于存储具有minio自定义策略的文件。我下面有政策文件。

mc

语句 "Version": "2012-10-17", "Statement": [ { "Action": [ "s3:PutObject" ], "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Resource": [ "arn:aws:s3:::my_bucket_name/*.jpg" ], "Sid": "Statement1" }, { "Action": [ "s3:GetObject" ], "Effect": "Allow", "Principal": { "AWS": [ "*" ] }, "Resource": [ "arn:aws:s3:::my_bucket_name/*" ], "Sid": "Statement2" } ] } 有效,但是语句s3:GetObject不起作用。我仍然将所有内容上传到MinIO浏览器。因此,我要做的就是仅上传jpg图片。

1 个答案:

答案 0 :(得分:1)

您看过Allow only certain file types to be uploaded to my Amazon S3 bucket吗?它详细介绍了一种比上述方法更全面的方法。也就是说,允许给定的扩展名,授予用户权限,并禁止任何非该扩展名的功能-剥夺具有*权限的用户上传其他内容的权限。

不知道“不工作”的含义,很难调试。您可以提供您正在使用的命令以及任何例外情况吗?在我脑海中,下面是我会尝试的调试尝试:

  1. 您的文件确实是.jpg,不是.JPG还是.jpeg.JPEG吗?
  2. "arn:aws:s3:::my_bucket_name/*.jpg"更改为"arn:aws:s3:::my_bucket_name/*"是否可行?如果没有,将其更改为"*"怎么办?

另一方面,我对文件类型限制表示怀疑,因为文件类型只是表面上强制执行的。任何可以重命名文件的人都可以上传文件,因为.jpg只是扩展名,对实际内容不做任何保证。在最好的情况下,执行扩展规则对于用户来说是一条快乐路径,但实际上您不能依靠它来保护系统不受任何损害。