Chapter 14. Storage and Retrieval
We looked at how to store data in relational databases in Chapter 5, but there’s a lot more that can be stored, both locally and remotely. In this chapter we’ll cover filesystem and in-memory storage, file uploads and manipulation, nonrelational data stores, sessions, the cache, logging, cookies, and full-text search.
Local and Cloud File Managers
Laravel provides a series of file manipulation tools through the Storage
facade and a few helper functions.
Laravel’s filesystem access tools can connect to the local filesystem as well as to S3, Rackspace, and FTP. The S3 and Rackspace file drivers are provided by Flysystem, and it’s simple to add additional Flysystem providers, such as Dropbox or WebDAV, to your Laravel app.
Configuring File Access
The definitions for Laravel’s file manager live in config/filesystems.php. Each connection is called a “disk,” and Example 14-1 lists the disks that are available out of the box.
Example 14-1. Default available storage disks
...
'disks'
=>
[
'local'
=>
[
'driver'
=>
'local'
,
'root'
=>
storage_path
(
'app'
),
'throw'
=>
false
,
],
'public'
=>
[
'driver'
=>
'local'
,
'root'
=>
storage_path
(
'app/public'
),
'url'
=>
env
(
'APP_URL'
)
.
'/storage'
,
'visibility'
=>
'public'
,
'throw'
=>
false
,
],
's3'
=>
[
'driver'
=>
's3'
,
'key'
=>
env
(
'AWS_ACCESS_KEY_ID'
),
'secret'
=>
env
(
'AWS_SECRET_ACCESS_KEY'
),
'region'
=>
env
(
'AWS_DEFAULT_REGION'
),
'bucket'
=>
env
(
'AWS_BUCKET'
),
'url'
=>
env
(
'AWS_URL'
),
'endpoint'
=>
env
(
'AWS_ENDPOINT' ...
Get Laravel: Up & Running, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.