수색…
구성
파일 시스템 설정 파일은 config/filesystems.php
있습니다. 이 파일에서 모든 "디스크"를 구성 할 수 있습니다. 각 디스크는 특정 저장 장치 드라이버 및 저장 위치를 나타냅니다. 지원되는 각 드라이버의 구성 예가 구성 파일에 포함되어 있습니다. 따라서 스토리지 환경 설정 및 자격 증명을 반영하도록 구성을 수정하십시오.
S3 또는 Rackspace 드라이버를 사용하기 전에 Composer를 통해 적절한 패키지를 설치해야합니다.
- Amazon S3 :
league/flysystem-aws-s3-v2 ~1.0
- Rackspace :
league/flysystem-rackspace ~1.0
물론 원하는만큼의 디스크를 구성 할 수 있으며 동일한 드라이버를 사용하는 디스크가 여러 개있을 수도 있습니다.
로컬 드라이버를 사용할 때는 모든 파일 작업이 구성 파일에 정의 된 루트 디렉토리에 상대적이라는 점에 유의하십시오. 기본적으로이 값은 storage/app directory
설정됩니다. 따라서 다음 방법은 파일을 storage/app/file.txt
에 storage/app/file.txt
.
Storage::disk('local')->put('file.txt', 'Contents');
기본 사용법
Storage
facade는 구성된 디스크와 상호 작용하는 데 사용될 수 있습니다. 또는 Laravel 서비스 컨테이너를 통해 해결되는 모든 클래스에 Illuminate\Contracts\Filesystem\Factory
계약을 입력 할 수도 있습니다.
특정 디스크 검색
$disk = Storage::disk('s3');
$disk = Storage::disk('local');
파일이 존재할 때 결정하기
$exists = Storage::disk('s3')->exists('file.jpg');
기본 디스크에서 메소드 호출
if (Storage::exists('file.jpg'))
{
//
}
파일의 내용 검색하기
$contents = Storage::get('file.jpg');
파일의 내용 설정하기
Storage::put('file.jpg', $contents);
파일 앞에 추가
Storage::prepend('file.log', 'Prepended Text');
파일에 추가
Storage::append('file.log', 'Appended Text');
파일 삭제
Storage::delete('file.jpg');
Storage::delete(['file1.jpg', 'file2.jpg']);
새 위치로 파일 복사
Storage::copy('old/file1.jpg', 'new/file1.jpg');
새 위치로 파일 이동
Storage::move('old/file1.jpg', 'new/file1.jpg');
파일 크기 가져 오기
$size = Storage::size('file1.jpg');
마지막 수정 시간 가져 오기 (UNIX)
$time = Storage::lastModified('file1.jpg');
디렉토리 내의 모든 파일 얻기
$files = Storage::files($directory);
// Recursive...
$files = Storage::allFiles($directory);
디렉토리 내의 모든 디렉토리 가져 오기
$directories = Storage::directories($directory);
// Recursive...
$directories = Storage::allDirectories($directory);
디렉토리 만들기
Storage::makeDirectory($directory);
디렉토리 삭제
Storage::deleteDirectory($directory);
사용자 정의 파일 시스템
Laravel의 Flysystem 통합은 여러 개의 "드라이버"를 즉시 사용할 수있는 드라이버를 제공합니다. 그러나 Flysystem은 이에 국한되지 않고 다른 많은 스토리지 시스템 용 어댑터를 보유하고 있습니다. Laravel 응용 프로그램에서 이러한 추가 어댑터 중 하나를 사용하려면 사용자 지정 드라이버를 만들 수 있습니다. 걱정하지 마세요, 그렇게 어렵지 않습니다!
사용자 정의 파일 시스템을 설정하려면 DropboxFilesystemServiceProvider
와 같은 서비스 제공자를 생성해야합니다. 공급자의 boot
메서드에서 Illuminate\Contracts\Filesystem\Factory
계약의 인스턴스를 삽입하고 삽입 된 인스턴스의 extend
메서드를 호출 할 extend
있습니다. 또는 Disk
외관의 extend
방법을 사용할 수도 있습니다.
extend
메소드의 첫 번째 인수는 드라이버의 이름이고 두 번째 인수는 $app
및 $config
변수를받는 Closure입니다. League\Flysystem\Filesystem
Closure는 League\Flysystem\Filesystem
의 인스턴스를 반환해야합니다.
참고 : $ config 변수는 이미 지정된 디스크에 대해
config/filesystems.php
에 정의 된 값을 포함합니다. 보관 용 예제
<?php namespace App\Providers;
use Storage;
use League\Flysystem\Filesystem;
use Dropbox\Client as DropboxClient;
use League\Flysystem\Dropbox\DropboxAdapter;
use Illuminate\Support\ServiceProvider;
class DropboxFilesystemServiceProvider extends ServiceProvider {
public function boot()
{
Storage::extend('dropbox', function($app, $config)
{
$client = new DropboxClient($config['accessToken'], $config['clientIdentifier']);
return new Filesystem(new DropboxAdapter($client));
});
}
public function register()
{
//
}
}
SSH를 사용하여 웹 서버에 심볼릭 링크 만들기
Laravel 문서에서는 웹에서 파일에 액세스 할 수 있도록 공용 / 저장소에서 저장소 / app / public에 대한 심볼릭 링크 (심볼 링크 또는 소프트 링크)를 만들어야합니다.
(이 과정은 라라 벨 프로젝트 디렉토리 내에서 심볼릭 링크를 생성합니다)
다음은 SSH 클라이언트를 사용하여 Linux 웹 서버에서 심볼릭 링크를 생성하는 방법에 대한 단계입니다.
SSH 클라이언트 (예 : PUTTY)를 사용하여 웹 서버에 연결하고 로그인하십시오.
구문을 사용하여 storage / app / public 을 public / storage에 연결 하십시오.
ln -s target_path link_path
예제 (CPanel 파일 디렉토리에서)
ln -s /home/cpanel_username/project_name/storage/app/public /home/cpanel_sername/project_name/public/storage
폴더 아이콘에 표시기 >>> 가있는 경로를 연결하기 위해 저장소 라는 폴더가 만들어집니다.