当前位置: 首页 > 知识库问答 >
问题:

代号为一个上载映像到S3桶权限

顾宏朗
2023-03-14

这是我的代码:

   String strImage = Capture.capturePhoto(width, -1);
   String s3Bucket = "https://s3.amazonaws.com/MyBuckt/";
   String fileName = "Images/1234567";
   MultipartRequest rq = new MultipartRequest();
   rq.setUrl(s3Bucket);
   rq.addArgumentNoEncoding("key", fileName);
   rq.addArgument("acl", "public-read-write"); // here I give read-write access
   rq.addData("file", strImage, "image/jpeg");
   NetworkManager.getInstance().addToQueue();

当我启动S3浏览器时,我确实看到了这个文件,当我点击这个文件时,我得到了拒绝访问的弹出消息。已授予bucket和文件夹以及子文件夹完全授予权限。

  • 图像由手机摄像头捕获。

共有1个答案

柯曜文
2023-03-14

经过一番研究,我找到了解决办法。希望它能帮助到某人。解决方案:

   String strImage = Capture.capturePhoto(width, -1);
   String s3Bucket = "https://s3.amazonaws.com/MyBuckt/";
   String fileName = "Images/1234567";
   MultipartRequest rq = new MultipartRequest();
   rq.setUrl(s3Bucket);
   rq.addArgumentNoEncoding("key", fileName);
   //rq.addArgument("acl", "public-read-write"); // here I give read-write access
   rq.addArgument("acl", "bucket-owner-full-control");
   rq.addData("file", strImage, "image/jpeg");
   NetworkManager.getInstance().addToQueue();

我将acl访问级别修改如下

rq.addArgument("acl", "bucket-owner-full-control");

我从阅读中了解到,上传的项目除了删除之外没有任何访问权限。通过这种acl访问,现在可以读取文件。

 类似资料:
  • 我一直在尝试将文件上传到s3存储桶。但该文件从未公开供查看。我必须手动将bucket中的文件/文件夹公开(每次上传时),以便查看。 有没有一种方法可以上传一个Android文件(位图),该文件的默认权限是在运行期间公开查看。如果可能的话,我更愿意通过编程来实现这一点。我查看了s3文档,没有找到任何有用的东西。

  • 我一直试图在一个使用https的站点上实现ajax上传到AmazonS3,所以当然我也必须上传到S3的安全版本https://bucket.name.S3.amazonaws.com。但是,当我尝试此上载时,我最终得到一个错误,即站点具有无效的安全证书。从我读到的内容来看,这是意料之中的,因为Amazon的s3证书只覆盖一级子域(http://shlomoswidler.com/2009/08/A

  • 我已经尝试了下面的代码,虽然采样器是传递,但文件是不复制的。然后我试着从本地上传到S3。由于我需要测试15GB以上的大文件,上传到S3需要很多时间。有没有从S3复制到S3的方法。

  • 我最近通过控制台在AWS上创建了一个S3桶,带有默认settigns(显然除了名称)。我尝试编辑桶策略,但得到这个错误:"错误访问拒绝",与我的管理IAM用户和根帐户。 如何获得编辑S3 Bucket策略的权限?

  • 我正试图使用 SetBrowserNavigationCallback 然而,这只起作用一次。如果我再次点击加载,什么也不会发生... 这是预期的行为吗? 如果是,从javascript中多次调用java函数的最佳方法是什么?

  • 致命错误:在/var/www/vhosts/domain/library/amazon/guzzle/http/entitybody.php:50堆栈跟踪:#0/var/www/vhosts/domain/library/aws/common/clientary/uploadbodylistener.php(85):guzzle\http\entitybody::factory(false)#1[