Provided by: libdbix-class-inflatecolumn-fs-perl_0.01007-1_all bug

NAME

       DBIx::Class::InflateColumn::FS - Inflate/deflate columns to Path::Class::File objects

SYNOPSIS

         __PACKAGE__->load_components(qw/InflateColumn::FS Core/);
         __PACKAGE__->add_columns(
             id => {
                 data_type         => 'INT',
                 is_auto_increment => 1,
             },
             file => {
                 data_type => 'TEXT',
                 is_fs_column => 1,
                 fs_column_path => '/var/lib/myapp/myfiles',
             },
             file_2 => {
                 data_type => 'TEXT',
                 is_fs_column => 1,
                 fs_column_path => '/var/lib/myapp/myfiles',
                 fs_new_on_update => 1
             },
         );
         __PACKAGE__->set_primary_key('id');

         # in application code
         $rs->create({ file => $file_handle });

         $row = $rs->find({ id => $id });
         my $fh = $row->file->open('r');

DESCRIPTION

       Provides inflation to a Path::Class::File object allowing file system storage of BLOBS.

       The storage path is specified with "fs_column_path".  Each file receives a unique name, so
       the storage for all FS columns can share the same path.

       Within the path specified by "fs_column_path", files are stored in sub-directories based
       on the first 2 characters of the unique file names.  Up to 256 sub-directories will be
       created, as needed.  Override "_fs_column_dirs" in a derived class to change this
       behavior.

       "fs_new_on_update" will create a new file name if the file has been updated.

METHODS

   inflate_result
   register_column
   fs_file_name
       Provides the file naming algorithm.  Override this method to change it.

       This method is called with two parameters: The name of the column and the "column_info"
       object.

   _fs_column_dirs
       Returns the sub-directory components for a given file name.  Override it to provide a
       deeper directory tree or change the algorithm.

   copy
       Copies a row object, duplicating the files backing fs columns.

   delete
       Deletes the associated file system storage when a row is deleted.

   set_column
       Deletes file storage when an fs_column is set to undef.

   set_inflated_column
       Re-inflates after setting an fs_column.

   _inflate_fs_column
       Inflates a file column to a Path::Class::File object.

   _deflate_fs_column
       Deflates a file column to its storage path name, relative to "fs_column_path".  In the
       database, a file column is just a place holder for inflation/deflation.  The actual file
       lives in the file system.

   table
       Overridden to provide a hook for specifying the resultset_class.  If you provide your own
       resultset_class, inherit from InflateColumn::FS::ResultSet.

SUPPORT

       Community support can be found via:

         Mailing list: http://lists.scsys.co.uk/mailman/listinfo/dbix-class/

         IRC: irc.perl.org#dbix-class

       The author is "semifor" on IRC and a member of the mailing list.

AUTHOR

       semifor: Marc Mims <marc@questright.com>

CONTRIBUTORS

       mst: Matt S. Trout <mst@shadowcatsystems.co.uk>

       mo: Moritz Onken <onken@netcubed.de>

       norbi: Norbert Buchmuller <norbi@nix.hu>

LICENSE

       You may distribute this code under the same terms as Perl itself.