1. ホーム
  2. apache

Spring Boot を使用して Dropbox フォルダにある静的コンテンツを提供するにはどうすればよいですか?

2023-09-27 15:01:07

質問

私はSpring BootのWebアプリケーションを持っており、私のLinode VPS上の共有Dropboxディレクトリ(~/Dropbox/images)にある静的コンテンツを提供したいと思っています。 Spring Bootは自動的に以下の場所から静的コンテンツを提供すると読みました。

"classpath:/META-INF/resources/",
"classpath:/resources/",
"classpath:/static/",
"classpath:/public/",

とありますが、もちろんDropboxのディレクトリはクラスパス上にありません。

Dropboxフォルダにある画像を提供するようにApacheを設定することはできますが、静的コンテンツへのアクセスを認証されたユーザーに制限するために、Spring Securityを活用したいと思います。

どのように解決するのですか?

独自の静的リソースハンドラを追加することができます (デフォルトを上書きします)、例えば

@Configuration
public class StaticResourceConfiguration extends WebMvcConfigurerAdapter {
    @Override
    public void addResourceHandlers(ResourceHandlerRegistry registry) {
        registry.addResourceHandler("/**").addResourceLocations("file:/path/to/my/dropbox/");
    }
}

これについては、いくつかのドキュメントが スプリングブート には、これに関するドキュメントがありますが、実際には単なるバニラSpring MVCの機能です。

また、spring boot 1.2 (だと思う) からは、単純に spring.resources.staticLocations .