代码之家  ›  专栏  ›  技术社区  ›  Amit

设置'withForceGlobalBucketAccessEnabled(true)'将确保S3调用不会失败,即使S3存储桶位于另一个区域?

  •  2
  • Amit  · 技术社区  · 8 年前

    背景 withForceGlobalBucketAccessEnabled(true) 例如:

    AmazonS3 amazonS3 = AmazonS3ClientBuilder.standard().withRegion(Regions.US_EAST_1) withForceGlobalBucketAccessEnabled(true).build();

    通过使用ForceGlobalBucketAccessenabled(true)设置:

    1.)是否确保即使铲斗不在中提供的相同区域内 withRegion(Regions) 对S3的调用(读/写)不会失败吗?

    2.)如果铲斗不在中提供的相同区域内 withRegion(区域) 然后将在其他区域中搜索该桶。获取bucket的区域后,将对其进行缓存。因此,实际上它只会在第一次调用中增加延迟,之后,它将使用缓存区域 不是 中提供的区域 withRegion(Regions.XXX)

    1 回复  |  直到 8 年前
        1
  •  4
  •   Amit    8 年前

    如果withForceGlobalBucketAccessEnabled设置为true,即withForceGlobalBucketAccessEnabled(true),则首先将调用指定的区域。如果bucket不在该区域中,那么它将在其他区域中搜索bucket。一旦找到bucket(在指定的区域或任何其他区域中),就会缓存该区域。因此,从逻辑上讲,如果bucket的区域没有更改,并且您的服务没有被反弹,那么即使您在代码中指定了错误的区域,也会将vall设置为正确的区域(缓存)