问题标签 [jets3t]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
257 浏览

amazon-s3 - 如何将 Spark 与谷歌云存储的“互操作模式”结合使用?

谷歌以“互操作性模式”的形式提供对其云存储服务的“s3 兼容”访问。

我们在一个封闭的网络上运行 spark,我们通过代理连接到互联网。Google 自己的用于云存储的 hadoop 连接器没有任何代理配置设置,因此我们必须使用内置的 spark s3a 连接器,它可以让您设置使用正在通话的代理所需设置的所有属性通过 core-site.xml 连接到 Internet 和相应的 google URL 端点:

但是,与boto不同,它可以在我们的环境中使用类似设置的代理正常工作,Spark 在尝试使用我们的代理时抛出 com.cloudera.com.amazonaws.services.s3.model.AmazonS3Exception 如下所示:

我在这里做错了什么,或者这根本不受支持?

同样,我很好奇这个版本的 spark 是否甚至使用 jets3t 库?我发现相互矛盾的 信息

0 投票
2 回答
2103 浏览

apache-spark - Amazon s3a 使用 Spark-redshift 库返回 400 Bad Request

我在通过spark-redshift 库java.io.IOException: s3n://bucket-name : 400 : Bad Request error加载 Redshift 数据时面临:

Redshift 集群和 s3 存储桶都在孟买地区

这是完整的错误堆栈:

这是我的Java代码:

通过进行以下更改(参考this ) ,我能够解决火花本地模式下的问题:

1) 我已将 jets3t jar 更换为 0.9.4

2) 更改了 jets3t 配置属性以支持 aws4 版本存储桶,如下所示:

但现在我试图在集群模式下运行作业(火花独立模式使用资源管理器 MESOS)并且错误再次出现:(

任何帮助,将不胜感激!

0 投票
0 回答
1578 浏览

java - Amazon Cloudfront 签名 URL,缺少 Key-Pair-Id

我无法通过 Cloudfront 分发访问存储在我的 Amazon s3 存储桶中的视频。

我已将分发设置为需要签名 URL 或签名 cookie(由“self”用户生成)并根据 Amazon 网站上的教程配置所有内容(为“self”用户生成密钥对,使用 openssl 将其转换为 .der 格式, ETC)。

然后我按照本教程中的步骤操作:http: //docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/CFPrivateDistJavaDevelopment.html

然后,我能够生成一个“罐头”签名的 URL 来访问内容并且它起作用了,我将 URL 粘贴到 chrome 中,它开始播放视频。这是代码:

但后来我决定创建一个自定义策略签名 URL,按照教程中的步骤,甚至使用与我用于罐装 URL 的完全相同的参数值,但它不起作用......这是代码:

请记住,“resourceURL”、“certificateId”和“derPrivateKey”是用于罐装 URL 的相同参数,它们在这种情况下有效。自从我在调试时检查以来,参数一直保持不变,并且 3 个字符串(signedUrlCanned,policy,signedUrl)共享相同的范围(它们在同一方法内连续生成)并且之间没有其他代码可以更改参数的值。

以下是自定义策略签名 URL 的生成 URL:

http://d1eanqhguto8v8.cloudfront.net/Fox/Dexter.mp4?Policy=eyJTdGF0ZW1lbnQiOiBbeyJSZXNvdXJjZSI6IioiLCJDb25kaXRpb24iOnsiRGF0ZUxlc3NUaGFuIjp7IkFXUzpFcG9jaFRpbWUiOjE1NDIyMzQwMDB9LCJJcEFkZHJlc3MiOnsiQVdTOlNvdXJjZUlwIjoiMC4wLjAuMC8wIn19fV19&Signature=D9sHG6i9GTZRUGwKZYhmz3xKOQsjEWHJPQTCNywzdX9r~F0yEb58ljBAqRyXbHNgmmGuRppS6s0VkiRcyYi8q~DRDoXLtnp~MBbnnBKbF0Qy3xcx59LF6mXC6lXSou7jqz68y~d0VOoLvnFQl~OR5eSTWRHUO7X42~k3qdIiRH~eqzBwAaV9XnbJcLQ2DEDiW13~sfZJXnRsO6hENSk-aGcWeoF80KoccJ2-nFt0ZpndIFI3V~YXRv~Z3VKKS2ek1MW8SE2xdsOdqXAMkJC2X2maQn~MBzczXBuqEO4qKt42FmZI496TckMWzG-pVs~ w-EjIWE2EEOzuXxopav8q~Q__&Key-Pair-Id=APKAIS7ACQJH7KT4YWLQ

您可以访问它并查看错误消息,它表示缺少 Key-Pair-Id,这显然不是真的,因为您可以看到它在那里。

有什么建议么?

编辑:我刚刚注意到该错误实际上是来自 Cloudfront 的 403“拒绝访问”。当我打开 chrome 控制台时,在“网络”选项卡下,我可以看到 2 个 GET,一个用于引发 403 错误的视频,另一个用于获取名为“favicon.ico”的东西,我不知道会是什么,并且那个抛出“Key-Pair-Id is missing”错误。我的一位同事可以访问该视频,但仍然出现 favicon.ico 错误,因此我认为该错误无关紧要,因为它不会干扰视频下载。

0 投票
0 回答
33 浏览

java - 如何使用 Jets3t 获取 s3 存储桶的大小

我正在尝试使用我的Java Spring MVCWeb 应用程序计算 S3 存储桶的总大小。我正在使用jets3t我的 S3 访问。

我有以下方法来计算 S3 存储桶的总文件大小。

但我找不到任何方法来计算存储桶的总文件大小。有什么办法可以找到吗?

0 投票
1 回答
87 浏览

java - 新旧 jets3t 的 AWS4-HMAC-SHA256 问题

我正在为 Amazon S3 服务工作,并且我已将 jets3t 用于 API。其实很久以前我上次使用的jets3t版本是:0.8.1,现在新的jets3t版本是:0.9.6。我正在使用 Java 7。

我正在尝试与 S3 连接,但对于少数存储桶(如法兰克福),它会引发以下问题: 不支持您提供的授权机制。请使用 AWS4-HMAC-SHA256

我分析了新jets3t所做的更改,并想合并到我现有的旧代码中,目前我无法完全更改jets3t的代码,我只想解决授权问题。

因此,我更新了authorizeHttpRequest请求方法,其中包含最新的 github 更改,如下所示:https ://github.com/mondain/jets3t/tree/master/jets3t :

但是现在它抛出了新的问题:我们计算的请求签名与您提供的签名不匹配。检查您的密钥和签名方法。

如何解决 jets3t 的身份验证问题?也有 AWS SDK 的选项,但是如果我使用 AWS SDK 进行身份验证,两者如何一起管理?