Szukaj…


Konfiguracja

Plik konfiguracyjny systemu plików znajduje się w config/filesystems.php . W tym pliku możesz skonfigurować wszystkie swoje „dyski”. Każdy dysk reprezentuje określony sterownik i lokalizację pamięci. Przykładowe konfiguracje dla każdego obsługiwanego sterownika znajdują się w pliku konfiguracyjnym. Po prostu zmodyfikuj konfigurację, aby odzwierciedlić preferencje dotyczące przechowywania i poświadczenia!

Przed użyciem sterowników S3 lub Rackspace należy zainstalować odpowiedni pakiet za pośrednictwem Composer:

  • Amazon S3: league/flysystem-aws-s3-v2 ~1.0 S3 league/flysystem-aws-s3-v2 ~1.0
  • Rackspace: league/flysystem-rackspace ~1.0

Oczywiście możesz skonfigurować dowolną liczbę dysków, a nawet mieć wiele dysków korzystających z tego samego sterownika.

Podczas korzystania ze sterownika lokalnego należy pamiętać, że wszystkie operacje na plikach są względne w stosunku do katalogu głównego zdefiniowanego w pliku konfiguracyjnym. Domyślnie ta wartość jest ustawiona na storage/app directory . Dlatego następująca metoda zapisałaby plik w storage/app/file.txt :

Storage::disk('local')->put('file.txt', 'Contents');

Podstawowe użycie

Fasada Storage może być używana do interakcji z dowolnymi skonfigurowanymi dyskami. Alternatywnie możesz wpisać wskazówkę dotyczącą Illuminate\Contracts\Filesystem\Factory na dowolnej klasie, która jest rozwiązywana za pośrednictwem kontenera usług Laravel.

Pobieranie konkretnego dysku

$disk = Storage::disk('s3');

$disk = Storage::disk('local');

Ustalanie, czy plik istnieje

$exists = Storage::disk('s3')->exists('file.jpg');

Metody wywoływania na dysku domyślnym

if (Storage::exists('file.jpg'))
{
    //
}

Pobieranie zawartości pliku

$contents = Storage::get('file.jpg');

Ustawianie zawartości pliku

Storage::put('file.jpg', $contents);

Przygotuj do pliku

Storage::prepend('file.log', 'Prepended Text');

Dołącz do pliku

Storage::append('file.log', 'Appended Text');

Usuń plik

Storage::delete('file.jpg');

Storage::delete(['file1.jpg', 'file2.jpg']);

Skopiuj plik do nowej lokalizacji

Storage::copy('old/file1.jpg', 'new/file1.jpg');

Przenieś plik do nowej lokalizacji

Storage::move('old/file1.jpg', 'new/file1.jpg');

Uzyskaj rozmiar pliku

$size = Storage::size('file1.jpg');

Uzyskaj czas ostatniej modyfikacji (UNIX)

$time = Storage::lastModified('file1.jpg');

Pobierz wszystkie pliki w katalogu

$files = Storage::files($directory);

// Recursive...
$files = Storage::allFiles($directory);

Uzyskaj wszystkie katalogi w jednym katalogu

$directories = Storage::directories($directory);

// Recursive...
$directories = Storage::allDirectories($directory);

Utwórz katalog

Storage::makeDirectory($directory);

Usuń katalog

Storage::deleteDirectory($directory);

Niestandardowe systemy plików

Integracja Laravel Flysystem zapewnia sterowniki dla kilku „sterowników” po wyjęciu z pudełka; jednak Flysystem nie ogranicza się do nich i ma adaptery do wielu innych systemów pamięci masowej. Możesz utworzyć niestandardowy sterownik, jeśli chcesz użyć jednego z tych dodatkowych adapterów w aplikacji Laravel. Nie martw się, to nie jest zbyt trudne!

Aby skonfigurować niestandardowy system plików, musisz utworzyć dostawcę usług, takiego jak DropboxFilesystemServiceProvider . W metodzie boot dostawcy można wstrzyknąć instancję Illuminate\Contracts\Filesystem\Factory i wywołać metodę extend wstrzykiwanej instancji. Alternatywnie możesz użyć metody extend elewacji Disk .

Pierwszy argument metody extend to nazwa sterownika, a drugi to Closure, które otrzymuje zmienne $app i $config . Zamknięcie resolvera musi zwrócić instancję League\Flysystem\Filesystem .

Uwaga: Zmienna $ config będzie już zawierać wartości zdefiniowane w config/filesystems.php dla określonego dysku. Przykład Dropbox

<?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()
    {
        //
    }

}

Tworzenie dowiązania symbolicznego na serwerze WWW za pomocą SSH

W dokumentacji Laravela należy utworzyć dowiązanie symboliczne (dowiązanie symboliczne lub miękkie) z public / storage do storage / app / public, aby udostępnić pliki z sieci.

(NINIEJSZA PROCEDURA STWORZY SYMBOLICZNE LINK W KATALOGU PROJEKTU LARAVEL)

Oto kroki, w jaki sposób można utworzyć symboliczne łącze na serwerze linuksowym za pomocą klienta SSH:

  1. Połącz się i zaloguj do swojego serwera internetowego za pomocą klienta SSH (np. PUTTY).

  2. Połącz pamięć / aplikację / publiczny z publicznym / magazyn, używając składni

    ln -s target_path link_path

    Przykład (w katalogu plików CPanel)

    ln -s /home/cpanel_username/project_name/storage/app/public /home/cpanel_sername/project_name/public/storage

(Zostanie utworzony folder o nazwie storage , aby połączyć ścieżkę ze wskaźnikiem >>> na ikonie folderu).



Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow