diff --git a/core/modules/file/config/views.view.files.yml b/core/modules/file/config/views.view.files.yml
new file mode 100755
index 0000000..d475816
--- /dev/null
+++ b/core/modules/file/config/views.view.files.yml
@@ -0,0 +1,540 @@
+base_field: fid
+base_table: file_managed
+core: 8.x
+description: 'Find and manage files.'
+status: '1'
+display:
+  files:
+    display_plugin: page
+    id: files
+    display_title: Page
+    position: '1'
+    display_options:
+      path: admin/content/files
+      menu:
+        type: tab
+        title: Files
+        description: ''
+        name: admin
+        weight: '0'
+        context: '0'
+  default:
+    display_plugin: default
+    id: default
+    display_title: Master
+    position: '1'
+    display_options:
+      access:
+        type: perm
+        options:
+          perm: 'access files overview'
+      cache:
+        type: none
+        options: {  }
+      query:
+        type: views_query
+        options:
+          disable_sql_rewrite: '0'
+          distinct: '0'
+          slave: '0'
+          query_comment: ''
+          query_tags: {  }
+      exposed_form:
+        type: basic
+        options:
+          submit_button: Filter
+          reset_button: '0'
+          reset_button_label: Reset
+          exposed_sorts_label: 'Sort by'
+          expose_sort_order: '1'
+          sort_asc_label: Asc
+          sort_desc_label: Desc
+      pager:
+        type: full
+        options:
+          items_per_page: '50'
+      style:
+        type: table
+        options:
+          grouping: {  }
+          row_class: ''
+          default_row_class: '1'
+          row_class_special: '1'
+          override: '1'
+          sticky: '0'
+          summary: ''
+          columns:
+            filename: filename
+            filemime: filemime
+            filesize: filesize
+            status: status
+            timestamp: timestamp
+            count: count
+          info:
+            filename:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            filemime:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            filesize:
+              sortable: '1'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            status:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            timestamp:
+              sortable: '1'
+              default_sort_order: desc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+            count:
+              sortable: '0'
+              default_sort_order: asc
+              align: ''
+              separator: ''
+              empty_column: '0'
+              responsive: ''
+          default: timestamp
+          empty_table: '1'
+      row:
+        type: fields
+      fields:
+        filename:
+          id: filename
+          table: file_managed
+          field: filename
+          alter:
+            alter_text: '0'
+            make_link: '0'
+            absolute: '0'
+            trim: '0'
+            word_boundary: '0'
+            ellipsis: '0'
+            strip_tags: '0'
+            html: '0'
+          hide_empty: '0'
+          empty_zero: '0'
+          link_to_file: '1'
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Name
+          exclude: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_alter_empty: '1'
+        thumb:
+          id: thumb
+          table: file_managed
+          field: thumb
+          alter:
+            alter_text: '0'
+            make_link: '0'
+            absolute: '0'
+            trim: '0'
+            word_boundary: '0'
+            ellipsis: '0'
+            strip_tags: '0'
+            html: '0'
+          hide_empty: '0'
+          empty_zero: '0'
+          link_to_file: '0'
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Thumbnail
+          exclude: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_alter_empty: '1'
+        filemime:
+          id: filemime
+          table: file_managed
+          field: filemime
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Mime type'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          link_to_file: '0'
+          filemime_image: '0'
+          plugin_id: file_filemime
+        filesize:
+          id: filesize
+          table: file_managed
+          field: filesize
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Size
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          file_size_display: formatted
+          plugin_id: file_size
+        status:
+          id: status
+          table: file_managed
+          field: status
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: Status
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          plugin_id: file_status
+        timestamp:
+          id: timestamp
+          table: file_managed
+          field: timestamp
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Upload date'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          date_format: medium
+          custom_date_format: ''
+          timezone: ''
+          plugin_id: date
+        count:
+          id: count
+          table: file_usage
+          field: count
+          relationship: none
+          group_type: group
+          admin_label: ''
+          label: 'Use count'
+          exclude: '0'
+          alter:
+            alter_text: '0'
+            text: ''
+            make_link: '0'
+            path: ''
+            absolute: '0'
+            external: '0'
+            replace_spaces: '0'
+            path_case: none
+            trim_whitespace: '0'
+            alt: ''
+            rel: ''
+            link_class: ''
+            prefix: ''
+            suffix: ''
+            target: ''
+            nl2br: '0'
+            max_length: ''
+            word_boundary: '1'
+            ellipsis: '1'
+            more_link: '0'
+            more_link_text: ''
+            more_link_path: ''
+            strip_tags: '0'
+            trim: '0'
+            preserve_tags: ''
+            html: '0'
+          element_type: ''
+          element_class: ''
+          element_label_type: ''
+          element_label_class: ''
+          element_label_colon: '1'
+          element_wrapper_type: ''
+          element_wrapper_class: ''
+          element_default_classes: '1'
+          empty: ''
+          hide_empty: '0'
+          empty_zero: '0'
+          hide_alter_empty: '1'
+          set_precision: '0'
+          precision: '0'
+          decimal: .
+          separator: ','
+          format_plural: '0'
+          format_plural_singular: '1'
+          format_plural_plural: '@count'
+          prefix: ''
+          suffix: ''
+          plugin_id: numeric
+      filters:
+        filemime:
+          id: filemime
+          table: file_managed
+          field: filemime
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: word
+          value: ''
+          group: '1'
+          exposed: '1'
+          expose:
+            operator_id: filemime_op
+            label: 'Mime type'
+            description: ''
+            use_operator: '0'
+            operator: filemime_op
+            identifier: filemime
+            required: '0'
+            remember: '0'
+            multiple: '0'
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+          is_grouped: '0'
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: '1'
+            widget: select
+            multiple: '0'
+            remember: '0'
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          plugin_id: string
+        status:
+          id: status
+          table: file_managed
+          field: status
+          relationship: none
+          group_type: group
+          admin_label: ''
+          operator: in
+          value: {  }
+          group: '1'
+          exposed: '1'
+          expose:
+            operator_id: status_op
+            label: Status
+            description: ''
+            use_operator: '0'
+            operator: status_op
+            identifier: status
+            required: '0'
+            remember: '0'
+            multiple: '0'
+            remember_roles:
+              authenticated: authenticated
+              anonymous: '0'
+              administrator: '0'
+            reduce: '0'
+          is_grouped: '0'
+          group_info:
+            label: ''
+            description: ''
+            identifier: ''
+            optional: '1'
+            widget: select
+            multiple: '0'
+            remember: '0'
+            default_group: All
+            default_group_multiple: {  }
+            group_items: {  }
+          plugin_id: file_status
+      sorts: {  }
+      title: Files
+      header: {  }
+      footer: {  }
+      empty:
+        area_text_custom:
+          id: area_text_custom
+          table: views
+          field: area_text_custom
+          empty: '1'
+          content: 'No files available.'
+          plugin_id: text_custom
+      relationships: {  }
+      arguments: {  }
+label: Files
+module: views
+id: files
+tag: default
+uuid: 4b47e09e-16e0-494b-b447-7166191dbb6e
+langcode: en
diff --git a/core/modules/file/file.module b/core/modules/file/file.module
index 65b15e5..ae7def7 100644
--- a/core/modules/file/file.module
+++ b/core/modules/file/file.module
@@ -1662,3 +1662,40 @@ function file_library_info() {
 
   return $libraries;
 }
+
+/**
+ * Implements hook_permission().
+ */
+function file_permission() {
+  $perms = array(
+    'access files overview' => array(
+      'title' => t('Access the Files overview page'),
+      'description' => user_access('access files overview')
+        ? t('Get an overview of <a href="@url">all files</a>.', array('@url' => url('admin/content/files')))
+        : t('Get an overview of all files.'),
+    ),
+  );
+
+  return $perms;
+}
+
+/**
+ * Formats human-readable version of file status.
+ *
+ * @param $choice
+ *   Status code.
+ * @return
+ *   Text-represented file status.
+ */
+function _views_file_status($choice = NULL) {
+  $status = array(
+    0 => t('Temporary'),
+    FILE_STATUS_PERMANENT => t('Permanent'),
+  );
+
+  if (isset($choice)) {
+    return isset($status[$choice]) ? $status[$choice] : t('Unknown');
+  }
+
+  return $status;
+}
diff --git a/core/modules/file/file.views.inc b/core/modules/file/file.views.inc
index c9e271f..96380e6 100644
--- a/core/modules/file/file.views.inc
+++ b/core/modules/file/file.views.inc
@@ -171,6 +171,16 @@ function file_views_data() {
     ),
   );
 
+  // uri
+  $data['file_managed']['thumb'] = array(
+    'title' => t('Thumbnail'),
+    'help' => t('Thumbnail image (if applies).'),
+    'real field' => 'uri',
+    'field' => array(
+      'id' => 'file_thumb',
+     ),
+  );
+
   // file_usage table
 
   $data['file_usage']['table']['group']  = t('File Usage');
@@ -507,16 +517,3 @@ function file_field_views_data_views_data_alter(&$data, $field) {
     );
   }
 }
-
-function _views_file_status($choice = NULL) {
-  $status = array(
-    0 => t('Temporary'),
-    FILE_STATUS_PERMANENT => t('Permanent'),
-  );
-
-  if (isset($choice)) {
-    return isset($status[$choice]) ? $status[$choice] : t('Unknown');
-  }
-
-  return $status;
-}
diff --git a/core/modules/file/lib/Drupal/file/Plugin/views/field/Thumbnail.php b/core/modules/file/lib/Drupal/file/Plugin/views/field/Thumbnail.php
new file mode 100644
index 0000000..e368b77
--- /dev/null
+++ b/core/modules/file/lib/Drupal/file/Plugin/views/field/Thumbnail.php
@@ -0,0 +1,61 @@
+<?php
+
+/**
+ * @file
+ * Definition of Drupal\file\Plugin\views\field\Thumbnail.
+ */
+
+namespace Drupal\file\Plugin\views\field;
+
+use Drupal\views\ViewExecutable;
+use Drupal\views\Plugin\views\display\DisplayPluginBase;
+use Drupal\Component\Annotation\PluginID;
+
+/**
+ * Field handler to display file thumbnail if possible.
+ *
+ * @PluginID("file_thumb")
+ */
+class Thumbnail extends File {
+
+  /**
+   * Overrides \Drupal\views\Plugin\views\field\FieldPluginBase::init().
+   */
+  public function init(ViewExecutable $view, DisplayPluginBase $display, array &$options = NULL) {
+    parent::init($view, $display, $options);
+    $this->additional_fields['filemime'] = 'filemime';
+  }
+
+  protected function defineOptions() {
+    $options = parent::defineOptions();
+    $options['thumb_image_style'] = array('default' => 'thumbnail', 'bool' => FALSE);
+    return $options;
+  }
+
+  public function buildOptionsForm(&$form, &$form_state) {
+    $styles = array();
+    foreach (entity_load_multiple('image_styles') as $name => $style) {
+      $styles[$name] = $style->name;
+    }
+    $styles['original'] = t('Original image');
+    $form['thumb_image_style'] = array(
+      '#title' => t('Image style'),
+      '#description' => t('Image style that will be used for thumbnail.'),
+      '#type' => 'select',
+      '#default_value' => !empty($this->options['thumb_image_style']),
+      '#options' => $styles,
+    );
+    parent::buildOptionsForm($form, $form_state);
+  }
+
+  function render($values) {
+    if (strpos($this->getValue($values, 'filemime'), 'image/') !== 0) {
+      return $this->render_link(t('N/A'), $values);
+    }
+
+    $uri = image_style_url('thumbnail', $values->{$this->field_alias});
+    $image = theme('image', array('uri' => $uri));
+    return $this->render_link($image, $values);
+  }
+
+}
