ローカルのGoogleApp Engine DevServerでgcsclient library + javaを使用して画像ファイルをアップロードしようとしています。画像が正常にアップロードされ、localhost:8888 / _ah / admin / datastoreの下のローカルデータストアに作成されたエントリを確認できます。
アップロードした画像の公開鍵を取得して、アプリケーションに画像を表示できるようにする方法。プロフィール写真の例
コードのサンプルコピー:
String filePath = Constants.gcsUrl + "/" + bucketName + "/"+ objectName;
GcsService gcsService = GcsServiceFactory
.createGcsService(new RetryParams.Builder()
.initialRetryDelayMillis(10).retryMaxAttempts(10)
.totalRetryPeriodMillis(15000).build());
GcsFilename filename = new GcsFilename(bucketName, objectName);
GcsFileOptions options = new GcsFileOptions.Builder()
.addUserMetadata("cache-control",
"max-age=" + (86400 * 365)).mimeType(mimeType)
.acl(ACL_PUBLIC_READ).build();
GcsOutputChannel writeChannel = gcsService.createOrReplace(
filename, options);
writeChannel.write(ByteBuffer.wrap(fileBytes));
writeChannel.close();
ローカル開発サーバーでImagesサービスを使用できます。そのためには、ブロブキーが必要です。
BlobstoreService blobStore = BlobstoreServiceFactory.getBlobstoreService();
BlobKey blobKey = blobStore.createGsBlobKey("/gs/" + filename.getBucketName() + "/" + filename.getObjectName())); // blobKey can be persisted
ImagesService imagesService = ImagesServiceFactory.getImagesService();
String url = imagesService.getServingUrl(ServingUrlOptions.Builder.withBlobKey(image));
サイズ変更は、を追加すること=sxxxx
でローカルdevserverでも機能しますが、ネイティブイメージサイズを取得することはできません。本番環境で=s0
は、URLに追加すると元のイメージが取得されますが、ローカルでは機能しません。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加