ユーザーの写真のアップロードをGoogleCloudStorageに保存しようとしていますが、通話で問題が発生します。
blobStoreService.createUploadUrl(...)
アップロードされたファイルに関連付けられているユーザーIDを追跡する必要があります。ユーザーのIDが1234の場合、それをメタデータとしてCloudStorageファイルに保存する必要があります。
CloudStorageファイルを直接作成するときにメタデータを追加できます。
GSFileOptionsBuilder optionsBuilder = new GSFileOptionsBuilder()
.setBucket("myBucket")
.setKey(key) // path...
.addUserMetadata("userId", "1234");
しかし、上記のコードで処理できるよりも大きなファイルをサポートしているため、GAEが提供するBlobStoreService.createUploadUrl(...)を本当に使用したいと思います。createUploadUrlでメタデータを指定することは可能ですか?または、どのgoogleストレージキー/ファイル名が作成されているかを見つけることさえ可能ですか?
更新 私はすでにアップロードコールバックserlvetからのblobKeyを持っています。ただし、このblobKeyに関連付けられているGoogleStorageファイルにメタデータを追加する方法が見つかりません。少なくともローカルでは、GSファイルではなくBlobStoreエントリであると見なします
// get the key:
Map<String, List<BlobKey>> blobKeysFromPost=BlobstoreServiceFactory.getBlobstoreService().getUploads(request);
// pull out the blobKey generated from the recently submitted POST
BlobKey blobKey = ...
// Now how do I access the cloud storage entry for this key? I tried:
AppEngineFile file = FileServiceFactory.getFileService().getBlobFile(blobKey);
// But this file locally returns "blobstore":
file.getFileSystem().getName(); // Should be GS.