You are here

protected function S3fsStream::_stat in S3 File System 8.2

Get the status of the file with the specified URI.

Return value

array An array with file status, or FALSE if the file doesn't exist.

See also

http://php.net/manual/en/streamwrapper.stream-stat.php

1 call to S3fsStream::_stat()
S3fsStream::url_stat in src/StreamWrapper/S3fsStream.php
Support for stat().

File

src/StreamWrapper/S3fsStream.php, line 1153

Class

S3fsStream
Defines a Drupal s3fs (s3fs://) stream wrapper class.

Namespace

Drupal\s3fs\StreamWrapper

Code

protected function _stat($uri) {
  $this
    ->_debug("_stat({$uri}) called.", TRUE);
  $metadata = $this
    ->_s3fs_get_object($uri);
  if ($metadata) {
    $stat = [];
    $stat[0] = $stat['dev'] = 0;
    $stat[1] = $stat['ino'] = 0;

    // Use the S_IFDIR posix flag for directories, S_IFREG for files.
    // All files are considered writable, so OR in 0777.
    $stat[2] = $stat['mode'] = ($metadata['dir'] ? 040000 : 0100000) | 0777;
    $stat[3] = $stat['nlink'] = 0;
    $stat[4] = $stat['uid'] = 0;
    $stat[5] = $stat['gid'] = 0;
    $stat[6] = $stat['rdev'] = 0;
    $stat[7] = $stat['size'] = 0;
    $stat[8] = $stat['atime'] = 0;
    $stat[9] = $stat['mtime'] = 0;
    $stat[10] = $stat['ctime'] = 0;
    $stat[11] = $stat['blksize'] = 0;
    $stat[12] = $stat['blocks'] = 0;
    if (!$metadata['dir']) {
      $stat[4] = $stat['uid'] = 's3fs';
      $stat[7] = $stat['size'] = $metadata['filesize'];
      $stat[8] = $stat['atime'] = $metadata['timestamp'];
      $stat[9] = $stat['mtime'] = $metadata['timestamp'];
      $stat[10] = $stat['ctime'] = $metadata['timestamp'];
    }
    return $stat;
  }
  return FALSE;
}