function _s3fs_write_metadata in S3 File System 7
Same name and namespace in other branches
- 7.3 s3fs.module \_s3fs_write_metadata()
 - 7.2 s3fs.module \_s3fs_write_metadata()
 
Writes metadata to the temp table in the database.
Parameters
array $file_metadata_list: An array passed by reference, which contains the current page of file metadata. This function empties out $file_metadata_list at the end.
array $folders: An associative array keyed by folder name, which is populated with the ancestor folders of each file in $file_metadata_list.
1 call to _s3fs_write_metadata()
- _s3fs_refresh_cache in ./
s3fs.module  - Refreshes the metadata cache.
 
File
- ./
s3fs.module, line 460  - Sets up the S3fsStreamWrapper class to be used as a Drupal file system.
 
Code
function _s3fs_write_metadata(&$file_metadata_list, &$folders) {
  if ($file_metadata_list) {
    $insert_query = db_insert('s3fs_file_temp')
      ->fields(array(
      'uri',
      'filesize',
      'timestamp',
      'dir',
      'mode',
      'uid',
      'version',
    ));
    foreach ($file_metadata_list as $metadata) {
      // Write the file metadata to the DB.
      $insert_query
        ->values($metadata);
      // Add the ancestor folders of this file to the $folders array.
      $uri = dirname($metadata['uri']);
      // Loop through each ancestor folder until we get to 's3://'.
      while (strlen($uri) > 5) {
        $folders[$uri] = TRUE;
        $uri = dirname($uri);
      }
    }
    $insert_query
      ->execute();
  }
  // Empty out the file array, so it can be re-filled by the next request.
  $file_metadata_list = array();
}