Spring Cloud GCP Google云存储
Google云存储的Spring资源抽象允许使用@Value批注通过其GCS URL访问GCS对象:
@Value("gs://[YOUR_GCS_BUCKET]/[GCS_FILE_NAME]") private Resource gcsResource;
…或Spring应用程序上下文
SpringApplication.run(...).getResource("gs://[YOUR_GCS_BUCKET]/[GCS_FILE_NAME]");
这将创建一个Resource对象,该对象可用于读取该对象以及其他可能的操作
。
尽管需要WriteableResource,但也可以写入Resource。
@Value("gs://[YOUR_GCS_BUCKET]/[GCS_FILE_NAME]") private Resource gcsResource; ... try (OutputStream os = ((WritableResource) gcsResource).getOutputStream()) { os.write("foo".getBytes()); }
要将Resource作为Google云存储资源使用,请将其强制转换为GoogleStorageResource。
如果资源路径指向Google Cloud Storage上的对象(而不是存储桶),则可以调用getBlob方法来获取Blob。此类型表示GCS文件,该文件具有可以设置的关联元数据,例如content-type。createSignedUrl方法还可用于获取GCS对象的签名URL。但是,创建签名的URL要求使用服务帐户凭据创建资源。
Google Cloud Storage的Spring Boot入门程序根据Spring Boot GCP入门程序提供的CredentialsProvider自动配置spring-cloud-gcp-storage模块所需的Storage bean。