- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发 iOS 应用程序,我需要将图像上传到 AWS S3Bucket。我从服务器获得了临时凭证(accessKey、secretKey、sessionToken 和 bucketName)来上传图片。
我发现很难确定使用此凭据上传图像的正确 API。
AWS 示例程序使用 AWSCognitoCredentialsProvider 给出。
我有可用的 Android 版本代码将图像上传到 S3。但是我在iOS SDK 中找不到相应的API。
BasicSessionCredentials basiccredentials = new BasicSessionCredentials(
MY_ACCESS_KEY_ID, MY_SECRET_KEY,
MY_SESSION_TOKEN);
AmazonS3Client s3Client = new AmazonS3Client(
basiccredentials);
TransferManager manager = new TransferManager(s3Client);
PutObjectRequest por = new PutObjectRequest(Constants.getPictureBucket(), Constants.PICTURE_NAME,file name);
manager.upload(por);
iOS SDK 具有以下 CredentialsProvider 类
AWSStaticCredentialsProvider 类仅接受 accessKey 和 secretKey。其他 2 个类需要不同的参数。
当我使用带 accessKey 和 secretKey 的 AWSStaticCredentialsProvider 上传图片时,我收到以下错误消息
Upload failed: [Error Domain=NSURLErrorDomain Code=-1017 "cannot parse response" UserInfo=0x7f8773f70ee0 {NSUnderlyingError=0x7f8773f4bbb0 "The operation couldn’t be completed. (kCFErrorDomainCFNetwork error -1017.)", NSErrorFailingURLStringKey=https://s3.amazonaws.com/playfiksprofilepictures/429bfd812ea08e706bab868f3cd8b9c6.jpg, NSErrorFailingURLKey=https://s3.amazonaws.com/playfiksprofilepictures/429bfd812ea08e706bab868f3cd8b9c6.jpg, _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-1, NSLocalizedDescription=cannot parse response}]
此错误消息不清楚是凭据提供程序的问题还是其他问题
非常感谢任何帮助解决此问题
谢谢
编辑
我已经使用了@user3467204提供的示例程序
这是带有错误消息的输出(您提供的 AWS 访问 key ID 在我们的记录中不存在)。但是使用相同的 key ,android java 代码可以正常工作。
Android代码使用accessKey、secrectKey和sessionToken,而iOS代码只使用accessKey和secrectKey。
2015-06-01 19:42:55.747 AWSV2Test[2191:170157] Image is at /Users/jpsasi/Library/Developer/CoreSimulator/Devices/E846AC10-82BE-40AA-BB7E-29796A8FAD2B/data/Containers/Bundle/Application/B59E9032-306D-4609-97D6-6C516638463A/AWSV2Test.app/testimage.png 2015-06-01 19:42:56.841 AWSV2Test[2191:170157] Uploaded 32677 / 35516 bytes 2015-06-01 19:42:56.842 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:42:56.843 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:00.249 AWSV2Test[2191:170157] Uploaded 32677 / 35516 bytes 2015-06-01 19:43:00.250 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:00.251 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:02.848 AWSV2Test[2191:170157] Uploaded 32677 / 35516 bytes 2015-06-01 19:43:02.849 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:02.850 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:05.285 AWSV2Test[2191:170157] Uploaded 32677 / 35516 bytes 2015-06-01 19:43:05.286 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:05.287 AWSV2Test[2191:170157] Uploaded 35516 / 35516 bytes 2015-06-01 19:43:06.681 AWSV2Test[2191:170157] error => Error Domain=com.amazonaws.AWSS3ErrorDomain Code=3 "The operation couldn’t be completed. (com.amazonaws.AWSS3ErrorDomain error 3.)" UserInfo=0x7faea40171d0 {HostId=GeMapgMjrv43TZ4yFKmTjIw6EsZafbgk3GH9ATtbgIj1VpNNv6EjhmZhobHVm+/2, Message=The AWS Access Key Id you provided does not exist in our records., AWSAccessKeyId=ASIAIFYM7NXH3CSNXY3Q, Code=InvalidAccessKeyId, RequestId=653371138733BE48}
最佳答案
如果您想使用在您的服务器上生成的临时凭据,您需要实现您自己的凭据提供程序。我推荐以下方法:
AWSCredentialsProvider
来实现您的凭据提供程序。以 AWSWebIdentityCredentialsProvider
和 AWSCognitoCredentialsProvider
的实现为例。该凭证提供者应该:
-refresh
时启动凭据刷新过程。我鼓励你看一看 Amazon Cognito Identity .借助 Amazon Cognito,您可以使用公共(public)登录提供商(例如 Amazon、Facebook、Google 和任何 OpenID Connect 兼容提供商)或使用您自己的用户身份系统来创建唯一的最终用户标识符以访问 AWS 云服务。它涵盖了许多自定义凭据提供程序用例,并且更易于使用和管理。
关于ios - AWS S3 上传 - 使用 AccessKey、SecretKey 和 SessionToken - iOS SDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30573006/
请看下面的代码: $('div').click(function(){ alert("Shortcut worked although element was hidden!"); });
这是什么意思:“该值必须是一组有序的唯一空格分隔标记”? 最佳答案 表示属性: 可以接受多个 key 每个 key 名称( token )不能包含空格 每个键名之间必须有一个空格 你不应该两次使用相同
我想选择所有定义了访问键的元素。 我知道我可以做到这一点:$('[accesskey]') ,但这在页面上给了我很多输入、href 等(其中大多数都有一个空的访问键)。 如何仅选择 accesskey
我想知道是否有一种方法可以用 JavaScript 模拟按下快捷键。它应该与以下 html 一起使用: click 这是我使用 jQuery 的方法(在 Chrome 中按 ALT+Z): var e
我想创建一个页面,其中某些输入和链接附加了访问键,我想通知用户他们需要按什么组合键来激活输入或链接。有没有办法通过 JavaScript 自动获取浏览器的 accesskey 组合键,或者我是否需要检
这似乎是一个反复出现的棘手问题,但我仍然没有解决方法或解决方法: 有没有办法在键盘快捷键之前拦截访问键? 我需要在我的收藏夹 导航器 IE 和 FF 上使用访问键,但我不想将现有的快捷键视为保留键。否
我想问一下accesskey如何删除alt,我有这个代码 " alt=""/> 所以我的访问键是 n,我必须按 alt + n 才能获得新订单,但我喜欢使用 n 只是因为很容易。我该怎么做谢谢。就目前
我正在编写微软 UI 自动化,AutomationElement 类中有两个属性 AcceleratorKey 和 AccessKey,有什么区别? 最佳答案 来自 MSDN : Accelerato
我有一个分配了 accesskey 的 anchor 。 anchor 用作按钮,但它必须是 anchor ,因为页面使用 jQuery UI 主题样式。 在 Chrome 中,一切正常,我可以使用
我有一个 分配给它的访问 key 。只要按钮可见,accesskey 就可以正常工作,但是当我设置 display: none 时或 visibility: hidden , accesskey 不再
哪些浏览器实现了输入属性“accesskey”? 行为是否跨浏览器一致? 将 accesskey 用作额外的数据属性是否安全(例如“rel”和“rev”有时用于 一个标签)? 此外,有没有办法在 Ja
我尝试了 preventDefault() 但没有成功。有什么我想念的吗? 如果可能的话,我会尝试全局禁用它(比如在 window 上注册事件) 最佳答案 似乎没有办法阻止事件的触发。唯一的选择似乎是
我在看 GM_registerMenuCommand Tampermonkey 中的函数,我注意到第三个参数称为 accessKey 并认为它是传递一个热键来触发这个命令。 传递的参数的格式是什么,我
document.getElementById('if-font').innerHTML =' http://example.com/?city='+cityName+'';
一个简单的 html 页面只包含两个控件,一个文本框和一个按钮。页面加载后,如果用户在文本框内单击并按“alt”+ p(按钮访问键),消息应显示为“I'm from key down!!”但是如果用户
我们有一个企业 Web 应用程序,我们正在将其从英语转换为泰语。让我们难过的一个领域是“访问 key ”问题。我们在 IE 中使用“Accesskey”属性来为我们的按钮提供快捷方式。但是,我们如何用
我正在使用 HTML5 和 jQuery 1.10 开发 Web 应用程序。我在输入和链接中使用 accesskey 属性来改进导航。 实际上我有这段代码: $("#linktabCost")
我在一个网站上工作,每个页面都有按钮,例如“提交”和“取消”。这些按钮中的每一个都有一个 accesskey 属性。提交按钮的 accesskey 属性设置为 S,取消按钮的 accesskey 属性
我正在尝试将 accesskey 用于 div 元素和 h1 元素。我将这些元素的 tabindex 属性指定为 tabindex="0"。使用 accesskey 中给出的快捷键访问此元素在 fir
我正在写我的第一个元素,我无意中遇到了这个问题。 {{names}} 奖品数组是: priz: ["四等奖","三等奖","二等奖","一等奖","幸运演员奖",
我是一名优秀的程序员,十分优秀!