/**
* Write a new file.
*
* @param string $path
* @param string $contents
* @param Config $config Config object
* @return array|false false on failure file meta data on success
*/
public function write($path, $contents, Config $config)
{
$object = $this->applyPathPrefix($path);
$options = $this->getOptionsFromConfig($config);
if (!isset($options[OssClient::OSS_LENGTH])) {
$options[OssClient::OSS_LENGTH] = Util::contentSize($contents);
}
if (!isset($options[OssClient::OSS_CONTENT_TYPE])) {
$options[OssClient::OSS_CONTENT_TYPE] = Util::guessMimeType($path, $contents);
}
try {
$this->client->putObject($this->bucket, $object, $contents, $options);
} catch (OssException $e) {
return false;
}
$type = 'file';
$result = compact('type', 'path', 'contents');
$result['mimetype'] = $options[OssClient::OSS_CONTENT_TYPE];
$result['size'] = $options[OssClient::OSS_LENGTH];
return $result;
}