Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将AWS S3配置为映像服务器_Java_Amazon Web Services_Amazon S3 - Fatal编程技术网

Java 将AWS S3配置为映像服务器

Java 将AWS S3配置为映像服务器,java,amazon-web-services,amazon-s3,Java,Amazon Web Services,Amazon S3,我希望使用AWSS3作为java应用程序的映像服务器。在任何时候,我们都可能拥有超过一百万张图片,所以我的问题是如何存储这些图片 我是我当前的应用程序,我将它们存储在嵌套目录中 范例 domain.com/63/45/1d/d435.jpg 那么,我应该继续像那样将图像存储在目录中吗?还是将它们存储在根文件夹中更好?我不确定AWS如何扩展它的S3实例,所以我想确保我做得正确 什么是水桶?在我的S3实例中,bucket就是存储实例吗 传递到PutObjectRequest的密钥是什么?我不确定如

我希望使用AWSS3作为java应用程序的映像服务器。在任何时候,我们都可能拥有超过一百万张图片,所以我的问题是如何存储这些图片

  • 我是我当前的应用程序,我将它们存储在嵌套目录中

    范例

    domain.com/63/45/1d/d435.jpg
    
    那么,我应该继续像那样将图像存储在目录中吗?还是将它们存储在根文件夹中更好?我不确定AWS如何扩展它的S3实例,所以我想确保我做得正确

  • 什么是水桶?在我的S3实例中,bucket就是存储实例吗

  • 传递到
    PutObjectRequest
    的密钥是什么?我不确定如果将凭据传递到AmazonS3Client,您是否就是这样提供目录的

  • 从s3实例读取时,是否最好将
    cname
    记录(如
    images.domain.com
    )指向我的s3实例并直接提取图像?如果是这样,您是否需要将S3实例配置为静态web宿主

  • 除非你打算每秒持续上传超过50到100张图片到S3中。S3不将文件存储在“文件夹”中,但当您在控制台中浏览时,它使用斜杠提供“文件夹”的视觉等价物,并且在以编程方式获取对象列表时,您可以使用斜杠作为前缀分隔符。无论是将所有文件存储在根目录中,还是在路径中使用斜杠将其拆分,这两种方式都不会对性能产生任何好处。文件命名的唯一潜在影响是当您以极高的速率上载文件时,文件名的前几个字节都是相同的。。。我会帮你的。但你不太可能遇到这种情况。如果您这样做了,请退出并自动重试,或者分割您的工作负载,这样您就不会在如此短的时间窗口内连续上载命名文件

  • S3不使用术语“实例”或“文件”。“文件”称为“对象”,“对象”存储在“bucket”中,每个“bucket”都有一个“key”(完整路径+文件名)“images.example.com”可能就是您所称的图像bucket,“63/45/1d/d435.jpg”是通过images.example.com/63/45/1d/d435.jpg访问的文件的密钥

  • “键”是“对象”的“文件名”。没有实际的目录,每个对象都由其“键”标识——看起来像/path/to/file/和/filename.ext。。。这意味着你不必做任何事情来“创建”这些目录。它们神奇地出现是因为有带有这些前缀的文件,如果删除这些文件,它们就会消失

  • 没有属于您的S3“实例”。当你使用S3时,你不会得到一个“虚拟机”,你的请求是由庞大的、可扩展的、分布式的实体S3提供的,考虑到它每秒、每秒、全天、每天服务超过一百万个请求,这个系统的可扩展性比你可能想象的要高得多。将bucket配置为静态网站托管,并将CNAME指向bucket的网站端点(如控制台中所示),或者如果您正在为DNS使用路由53,则使用别名记录