수색…


구성

파일 시스템 설정 파일은 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.txtstorage/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 웹 서버에서 심볼릭 링크를 생성하는 방법에 대한 단계입니다.

  1. SSH 클라이언트 (예 : PUTTY)를 사용하여 웹 서버에 연결하고 로그인하십시오.

  2. 구문을 사용하여 storage / app / publicpublic / 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

폴더 아이콘에 표시기 >>> 가있는 경로를 연결하기 위해 저장소 라는 폴더가 만들어집니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow