Scala 如何通过Alpaka gcs从谷歌云存储下载,而不提供密钥?

Scala 如何通过Alpaka gcs从谷歌云存储下载,而不提供密钥?,scala,google-cloud-storage,google-compute-engine,alpakka,Scala,Google Cloud Storage,Google Compute Engine,Alpakka,如果我在application.conf上提供GCS密钥(如下所示),那么我将从google compute engine完美地连接到GCS alpakka.google.cloud.storage { project-id = "project_id" client-email = "client_email" private-key = "************gcs-secret-key************"

如果我在application.conf上提供GCS密钥(如下所示),那么我将从google compute engine完美地连接到GCS

alpakka.google.cloud.storage {
  project-id = "project_id"
  client-email = "client_email"
  private-key = "************gcs-secret-key************"
  base-url = "https://www.googleapis.com/" // default
  base-path = "/storage/v1" // default
  token-url = "https://www.googleapis.com/oauth2/v4/token" // default
  token-scope = "https://www.googleapis.com/auth/devstorage.read_write" // default
}

我的问题是 如何连接已具有凭证的计算引擎,而不为alpakka提供密钥

下面的代码示例运行良好,但我想知道alpakka的方法

def downloadObject(objectName:String,destFilePath:String):单位={
导入com.google.cloud.storage.BlobId
导入com.google.cloud.storage.StorageOptions
导入java.nio.file.path
def-credentials:GoogleCredentials=computenginecredentials.create()
val storage=StorageOptions.newBuilder.setCredentials(凭证).setProjectId(projectId.build.getService
val blob=storage.get(BlobId.of(bucketName,objectName))
blob.downloadTo(path.get(destFilePath))
}

如果你查看阿尔帕卡的资料来源,你会发现一个。不幸的是,这个版本只支持内部调用,这是一个阿尔帕卡制作的向谷歌云请求令牌的版本。并且只基于私钥,而不基于元数据服务器或GOOGLE_应用程序_凭据环境变量


您可以在项目中提出更改建议,甚至可以使用Google Cloud oauth客户端库开发它并将其推送到项目中。

如果查看Alpaka源代码,您可以看到一个。不幸的是,这个版本只支持内部调用,这是一个阿尔帕卡制作的向谷歌云请求令牌的版本。并且只基于私钥,而不基于元数据服务器或GOOGLE_应用程序_凭据环境变量


您可以在项目中提出更改,甚至可以使用Google Cloud oauth客户端库开发它并将其推送到项目中。

我明白了。谢谢您的详细解释!我懂了。谢谢您的详细解释!