WritableByteChannel createInternal(URI path, CreateFileOptions options)
      throws IOException {

    // Validate the given path. false == do not allow empty object name.
    StorageResourceId resourceId = pathCodec.validatePathAndGetId(path, false);
    if (options.getExistingGenerationId() != StorageResourceId.UNKNOWN_GENERATION_ID) {
      resourceId = new StorageResourceId(
          resourceId.getBucketName(),
          resourceId.getObjectName(),
          options.getExistingGenerationId());
    }
    WritableByteChannel channel = gcs.create(resourceId, objectOptionsFromFileOptions(options));
    tryUpdateTimestampsForParentDirectories(ImmutableList.of(path), ImmutableList.<URI>of());
    return channel;
  }
WritableByteChannel createInternal ( URI path , CreateFileOptions options ) throws IOException { StorageResourceId resourceId = pathCodec . validatePathAndGetId ( path , false ) ; if ( options . getExistingGenerationId ( ) != StorageResourceId . UNKNOWN_GENERATION_ID ) { resourceId = new StorageResourceId ( resourceId . getBucketName ( ) , resourceId . getObjectName ( ) , options . getExistingGenerationId ( ) ) ; } WritableByteChannel channel = gcs . create ( resourceId , objectOptionsFromFileOptions ( options ) ) ; tryUpdateTimestampsForParentDirectories ( ImmutableList . of ( path ) , ImmutableList . < URI > of ( ) ) ; return channel ; }
Creates and opens an object for writing.
If the object already exists, it is deleted.

@param path Object full path of the form gs://bucket/object-path.
@return A channel for writing to the given object.
@throws IOException