/** * Create a blob key for a Google Cloud Storage file. * * @param string $filename The google cloud storage filename, in the format * gs://bucket_name/object_name * * @return string A blob key for this filename that can be used in other API * calls. * * @throws \InvalidArgumentException if the filename is not in the correct * format. * @throws CloudStorageException If there was a problem contacting the * service. * @deprecated This method will be made private in the next version. */ private static function createGsKey($filename) { $gs_filename = sprintf('/gs/%s', self::stripGsPrefix($filename)); $request = new CreateEncodedGoogleStorageKeyRequest(); $response = new CreateEncodedGoogleStorageKeyResponse(); $request->setFilename($gs_filename); try { ApiProxy::makeSyncCall('blobstore', 'CreateEncodedGoogleStorageKey', $request, $response); } catch (ApplicationError $e) { throw self::applicationErrorToException($e); } return $response->getBlobKey(); }
/** * Create a blob key for a Google Cloud Storage file. * * @param string $filename The google cloud storage filename, in the format * gcs://bucket_name/object_name * * @return string A blob key for this filename that can be used in other API * calls. * * @throws InvalidArgumentException if the filename is not in the correct * format. * @throws BlobstoreException If there was a problem contacting the * service. */ public static function createGsKey($filename) { if (!is_string($filename)) { throw new \InvalidArgumentException('filename must be a string.'); } $gcs_prefix_len = strlen(self::GCS_PREFIX); if (strncmp($filename, self::GCS_PREFIX, $gcs_prefix_len) != 0) { throw new \InvalidArgumentException(sprintf('filename must start with the prefix %s.', self::GCS_PREFIX)); } $gcs_filename = substr($filename, $gcs_prefix_len); if (!strpos($gcs_filename, "/")) { throw new \InvalidArgumentException('filename not in the format gcs://bucket_name/object_name.'); } $gcs_filename = sprintf('/gs/%s', $gcs_filename); $request = new CreateEncodedGoogleStorageKeyRequest(); $response = new CreateEncodedGoogleStorageKeyResponse(); $request->setFilename($gcs_filename); try { ApiProxy::makeSyncCall('blobstore', 'CreateEncodedGoogleStorageKey', $request, $response); } catch (ApplicationError $e) { throw BlobstoreService::ApplicationErrorToException($e); } return $response->getBlobKey(); }
/** * Create a blob key for a Google Cloud Storage file. * * @param string $filename The google cloud storage filename, in the format * gs://bucket_name/object_name * * @return string A blob key for this filename that can be used in other API * calls. * * @throws \InvalidArgumentException if the filename is not in the correct * format. * @throws CloudStorageException If there was a problem contacting the * service. * @deprecated This method will be made private in the next version. * * @access private */ private static function createGsKey($filename) { if (!self::parseFilename($filename, $bucket, $object) || !$object) { throw new \InvalidArgumentException(sprintf('Invalid Google Cloud Storage filename: %s', htmlspecialchars($filename))); } $gs_filename = sprintf('/gs/%s%s', $bucket, $object); $request = new CreateEncodedGoogleStorageKeyRequest(); $response = new CreateEncodedGoogleStorageKeyResponse(); $request->setFilename($gs_filename); try { ApiProxy::makeSyncCall('blobstore', 'CreateEncodedGoogleStorageKey', $request, $response); } catch (ApplicationError $e) { throw self::applicationErrorToException($e); } return $response->getBlobKey(); }