use*_*609 13 java google-app-engine google-cloud-storage
我想使用GCS存储桶作为我的blobstore的支持,但我无法弄清楚如何在我的开发服务器上设置一个.
有关使用实时服务器上的开发人员控制台执行此操作的说明,但我找不到有关如何在本地开发计算机上执行此操作的任何信息...
use*_*609 21
事实证明,您根本不需要执行任何设置.我只是假设在使用blobstore上传时有一个具有特定名称的名称,并且自动为我创建了一个名称.
顺便说一下,在任何地方都没有记录如何浏览开发服务器存储中的文件.您可以通过__GsFileInfo__在数据存储查看器管理员访问本地开发服务器中选择实体来完成此操作.
小智 10
对于那些试图让Google Cloud Storage从他们的本地Java开发应用服务器上工作的人来说,我认为还有一个答案会有所帮助.我设法让我的本地开发应用服务器与非本地Google云存储一起工作,但只是挖掘代码并找出所需内容 - 似乎没有关于此的文档.
目标是让这个代码块在本地工作,从GCS读取一个文件:
GcsService gcsService =
GcsServiceFactory.createGcsService(RetryParams.getDefaultInstance());
int fileSize = (int) gcsService.getMetadata(gcsFilename).getLength();
ByteBuffer byteBuffer = ByteBuffer.allocate(fileSize);
GcsInputChannel inputChannel = gcsService.openReadChannel(gcsFilename, 0);
int readResult = inputChannel.read(byteBuffer);
byte[] fileBytes = byteBuffer.array();
Run Code Online (Sandbox Code Playgroud)
如果您尝试在本地执行此操作,则无法找到您上传到GCS的任何文件,因为它将尝试使用虚假的本地GCS.不幸的是,我还没有找到上传到本地GCS的好方法,所以这不是很有用(没有文件浏览器,因为云版本中存在,而gsutil不适用于它).因此,在本地开发应用服务器上运行时,我们将使用非本地(云)GCS.
为此,请注意GcsService是通过以下代码块在com.google.appengine.tools.cloudstorage.GcsServiceFactory中创建的:
if (location == SystemProperty.Environment.Value.Production || hasCustomAccessTokenProvider()) {
rawGcsService = OauthRawGcsServiceFactory.createOauthRawGcsService(builder.build());
} else if (location == SystemProperty.Environment.Value.Development) {
rawGcsService = LocalRawGcsServiceFactory.createLocalRawGcsService();
Run Code Online (Sandbox Code Playgroud)
上面说过,您需要指定一个自定义访问令牌提供程序来获取非本地服务,您可以通过定义系统属性来执行此操作.对于应用程序引擎应用程序,您可以在appengine-web.xml中执行此操作,如下所示:
<system-properties>
<property name="gcs_access_token_provider" value="com.mypackage.MyAccessTokenProvider" />
</system-properties>
Run Code Online (Sandbox Code Playgroud)
该属性的值是您定义的实现com.google.appengine.tools.cloudstorage.oauth.AccessTokenProvider的类,它为您的应用提供访问令牌.该类需要创建GoogleCredential,可以使用https://developers.google.com/identity/protocols/OAuth2ServiceAccount#authorizingrequests上 GoogleCredential的"其他"说明来获取访问令牌.
现在它将创建一个与云通信的OAuth GcsService,而您不需要使用虚假的本地存储.
| 归档时间: |
|
| 查看次数: |
7706 次 |
| 最近记录: |