亚马逊存储 ec2 像 S3 一样直接访问

Amazon Storage ec2 direct access like S3

我是 Amazon 的新手,对 Amazon ec2 感到困惑,有一些我无法在 google 上找到的查询 问:我们可以直接存储图像吗(通过亚马逊提供的 SDK,如 S3,而不是通过消耗 rest api's ) 问:ec2 是否纯粹用于后端服务

我已经检查了 android aws,他们有 ec2 的 sdk,但我不知道如何使用它来直接访问 ec2 实例并做一些存储。

SDK Link

https://github.com/aws-amplify/aws-sdk-android

我不使用 s3 的原因是,S3 存储在非洲地区不可用,这是必须的要求,建议将不胜感激。

非洲地区可以使用s3,请查看评论下方,我已经包含了link,它征集了所有支持的地区

S3 不是服务器,只是一个 Object store。有点像一次可以存储 1 个文件的硬件。您可以使用 S3 保存任何类型的文件(不可扩展的文件)。 EC2 只是一个服务器/机器,可以用于任何你喜欢的东西。

如果您只想使用 Android SDK 将文件保存在 S3 上,那么您可以这样做。选中 DownloadTaskTransfer* 类 从 Android 下载/上传 S3 上的文件。 Android SDK 中对 S3 类 的引用如下

https://github.com/aws-amplify/aws-sdk-android/tree/main/aws-android-sdk-s3/src/main/java/com/amazonaws/mobileconnectors/s3/transferutility

感谢您的帮助,我终于找到了支持 amazon s3 所有区域的文档,它是 https://docs.aws.amazon.com/general/latest/gr/s3.html

休息很简单

        val amazonS3Client = getAmazonS3Client()
        var uploadObserver = TransferUtility.builder()
            .defaultBucket("enter_your_s3_bucket_name")
            .context(ApplicationCOntext)
            .s3Client(amazonS3Client).build()

        uploadObserver.upload("enter_your_s3_bucket_name",
            "" + "fileName" + ".mp4",
            File(""),
            CannedAccessControlList.PublicRead).setTransferListener(object : TransferListener {
            override fun onStateChanged(id: Int, state: TransferState?) {
                if (state == TransferState.COMPLETED) {
                    success.invoke()
                }

            }

            override fun onProgressChanged(id: Int, bytesCurrent: Long, bytesTotal: Long) {
            }

            override fun onError(id: Int, ex: Exception?) {
                exception?.invoke(ex!!)
            }
        })