#android #amazon-s3
#Android #amazon-s3
Вопрос:
Я пытаюсь использовать облачное хранилище wasabi с использованием aws s3 sdk, но я получаю схему URI endpointOverride, которая не должна быть нулевым исключением. Вот мой код. Как я могу решить проблему?
private val AMAZON_S3_CLIENT: S3Client = S3Client.builder()
.endpointOverride(URI(Config.SERVICE_END_POINT))
.region(Region.US_EAST_1)
.credentialsProvider(
StaticCredentialsProvider.create(
AwsBasicCredentials.create(
Config.AWS_ACCESS_KEY,
Config.AWS_SECRET_KEY
)
)
)
.build()
Ответ №1:
Я только что столкнулся с тем же исключением, используя AWS Java SDK 2 с DynamoDB.
java.lang.NullPointerException: The URI scheme of endpointOverride must not be null
Как указано в исключении, схема в URI of endpointOverride
отсутствует.
Я ранее использовал "dynamodb.eu-central-1.amazonaws.com"
.
Добавление схемы решило проблему.
"https://dynamodb.eu-central-1.amazonaws.com"
Ответ №2:
Это правильно. вы должны добавить конечную точку с помощью https://
Мы используем приложение Flink Kinesis Analytics для чтения из KDS и записи в экземпляр Timestream.
В Flink при создании требуемого объекта TimestreamSink в Java для записи во Timestream есть свойство, которое необходимо установить bet при использовании службы конечных точек VPC.
TimestreamSinkConfig.builder().endpointOverride(endpointOverride)
изначально у меня был endpointOverride как null, когда я не использовал конечную точку VPC, и это работало нормально.
Когда мы реализовали конечную точку VPC с конечной точкой
ingest-cell1.timestream.region.amazonaws.com
это не сработало, и изначально не было очевидно, почему, поскольку в документации это явно не указано.
Когда я использовал https://ingest-cell1.timestream.region.amazonaws.com (где region — это наш регион AWS, а cell1 — ячейка временного потока) процесс Flink смог выполнить запись во временной поток, как и ожидалось.