google/appengine/ext/cloud_storage_streams/CloudStorageWriteClient.php
Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
\google\appengine\ext\cloud_storage_streams\CloudStorageWriteClient
Derived classes then only implement the methods that are relevant to the operations that they perform.
Constants

METADATA_HEADER_PREFIX
= 'x-goog-meta-'

DEFAULT_READ_SIZE
= 524288

DEFAULT_READ_CACHE_EXPIRY_SECONDS
= 3600

DEFAULT_MAXIMUM_NUMBER_OF_RETRIES
= 2

DEFAULT_WRITABLE_CACHE_EXPIRY_SECONDS
= 600

READ_SCOPE
= "https://www.googleapis.com/auth/devstorage.read_only"

WRITE_SCOPE
= "https://www.googleapis.com/auth/devstorage.read_write"

FULL_SCOPE
= "https://www.googleapis.com/auth/devstorage.full_control"

OAUTH_TOKEN_FORMAT
= "OAuth %s"

PARTIAL_CONTENT_RANGE_FORMAT
= "bytes %d-%d/*"

FINAL_CONTENT_RANGE_FORMAT
= "bytes %d-%d/%d"

FINAL_CONTENT_RANGE_NO_DATA
= "bytes */%d"

DELIMITER
= '/'

FOLDER_SUFFIX
= '_$folder$'

WRITABLE_TEMP_FILENAME
= "/_ah_is_writable_temp_file"

S_IFREG
= 32768

S_IFDIR
= 16384

S_IRWXU
= 448

S_IRUSR
= 256

S_IWUSR
= 128

S_IXUSR
= 64

S_IRWXG
= 56

S_IRGRP
= 32

S_IWGRP
= 16

S_IXGRP
= 8

S_IRWXO
= 7

S_IROTH
= 4

S_IWOTH
= 2

S_IXOTH
= 1

CONTENT_RANGE_REGEX
= "/bytes\s+(\d+)-(\d+)\/(\d+)/i"

MEMCACHE_KEY_FORMAT
= "_ah_gs_read_cache_%s_%s"
The parameters are the object url (as a string) and the read range, as a string (e.g. bytes=0-512000). Example key for a cloud storage file gs://bucket/object.png _ah_gs_read_cache_https://storage.googleapis.com/bucket/object.png_bytes=0-524287

WRITABLE_MEMCACHE_KEY_FORMAT
= "_ah_gs_write_bucket_cache_%s"
The only way to check if an app can write to a bucket is by actually writing a file. As the ACL on a bucket is unlikely to change then we can cache the result.
Methods

__construct
(string $bucket, string $object, resource $context)
: void
Construct an object of CloudStorageClient.
Name | Type | Description |
---|---|---|
$bucket | string |
The name of the bucket. |
$object | string |
The name of the object, or null if there is no object. |
$context | resource |
The stream context to use. |

__destruct
()
: void
Inherited from: \google\appengine\ext\cloud_storage_streams\CloudStorageClient::__destruct()

createObjectUrl
( $bucket, $object = null)
: void
Create a URL for a target bucket and optional object.
Inherited from: \google\appengine\ext\cloud_storage_streams\CloudStorageClient::createObjectUrl()Name | Type | Description |
---|---|---|
$bucket | ||
$object |
- VisibleForTesting

dir_readdir
()
: void
Inherited from: \google\appengine\ext\cloud_storage_streams\CloudStorageClient::dir_readdir()

dir_rewinddir
()
: void
Inherited from: \google\appengine\ext\cloud_storage_streams\CloudStorageClient::dir_rewinddir()

flush
()
: void
Because of the write byte alignment required by GS we will not write any data on a flush.
If there is data remaining in the buffer we'll write it during close.

getContentType
()
: void
Subclass can override this method to return the MIME content type of the underlying GCS object.

getMetaData
()
: void
Subclass can override this method to return the metadata of the underlying GCS object.

initialize
()
: true
Called when the stream is being opened.
Try and start a resumable upload here.
Type | Description |
---|---|
true | if the streamable upload started, false otherwise. |