Amazon s3 从MonoDroid应用程序访问S3

Amazon s3 从MonoDroid应用程序访问S3,amazon-s3,xamarin.android,Amazon S3,Xamarin.android,有没有从MonoDroid应用程序访问S3(或任何AWS服务)的解决方案?我找到了适用于S3的Android sdk,但这些都是jar文件(不确定是否有办法实现这一点?) 我尝试使用.NETAWSSDK。这可以编译,但在运行时,当我尝试构造任何对象时,它会执行各种奇怪的操作(像发生异常一样中断,但没有指示异常是什么,有时会一起崩溃) 我搜索了AWS文档,看看是否有一个简单的web服务帖子可以不用SDK发布,看起来这应该是可能的,但我没有找到任何关于如何做到这一点的信息。您可以使用SDK访问S3。

有没有从MonoDroid应用程序访问S3(或任何AWS服务)的解决方案?我找到了适用于S3的Android sdk,但这些都是jar文件(不确定是否有办法实现这一点?)

我尝试使用.NETAWSSDK。这可以编译,但在运行时,当我尝试构造任何对象时,它会执行各种奇怪的操作(像发生异常一样中断,但没有指示异常是什么,有时会一起崩溃)


我搜索了AWS文档,看看是否有一个简单的web服务帖子可以不用SDK发布,看起来这应该是可能的,但我没有找到任何关于如何做到这一点的信息。

您可以使用SDK访问S3。其他AWS服务也有类似的API

另一个解决方案是使用Mono c#编译器重新编译.Net SDK。看哪一个建议了这个解决方案——被接受的答案是由编辑的(我想他知道关于单机器人的一两件事…)

但是,此解决方案可能存在严重缺陷。您不应该使用来自客户端设备的S3密钥。如果你的应用程序用户正在输入他们自己的凭据,那么这不会是一个问题,但是如果你计划与多个用户一起使用你自己的S3帐户,那么你就有问题了


使用RESTAPI,您可以在服务器上对请求进行预签名,因此永远不会在客户端公开您的密钥。

您可以使用。其他AWS服务也有类似的API

另一个解决方案是使用Mono c#编译器重新编译.Net SDK。看哪一个建议了这个解决方案——被接受的答案是由编辑的(我想他知道关于单机器人的一两件事…)

但是,此解决方案可能存在严重缺陷。您不应该使用来自客户端设备的S3密钥。如果你的应用程序用户正在输入他们自己的凭据,那么这不会是一个问题,但是如果你计划与多个用户一起使用你自己的S3帐户,那么你就有问题了


使用REST API,您可以在服务器上对请求进行预签名,因此永远不会在客户端公开您的密钥。

太棒了,感谢您的清晰解释,并感谢+10提供有关密钥的提示。昨晚我在寻找REST API文档,认为它存在,但一定是错过了。太棒了,谢谢你的清晰解释和+10关于密钥的提示。昨晚我在寻找RESTAPI文档,认为它存在,但一定是错过了。