A clone of 'official' Archive::BagIt reposity by CPAN author Rob Schmidt (https://github.com/rjeschmi/Archive-BagIt). This repository contains patches to update Archive::BagIt to version 1.0 of BagIt, see RFC 8493 (https://tools.ietf.org/html/rfc8493)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

3.9 KiB

# NAME

Archive::BagIt - An interface to make and verify bags according to the BagIt standard

# VERSION

version 0.069

# WARNING

This is experimental software for the moment and under active development.

Under the hood, the module Archive::BagIt::Base was adapted and extended to
support BagIt 1.0 according to RFC 8493 (\[https://tools.ietf.org/html/rfc8493\](https://tools.ietf.org/html/rfc8493)).

Also: Check out Archive::BagIt::Fast if you are willing to add some extra dependencies to get
better speed by mmap-ing files.

# SUBROUTINES

## new

An Object Oriented Interface to a bag. Opens an existing bag.

my $bag = Archive::BagIt->new('/path/to/bag');

## make\_bag

A constructor that will make and return a bag from a directory

If a data directory exists, assume it is already a bag (no checking for invalid files in root)

## verify\_bag

An interface to verify a bag.

You might also want to check [Archive::BagIt::Fast](https://metacpan.org/pod/Archive::BagIt::Fast) to see a more direct way of
accessing files (and thus faster).

## get\_checksum

This is the checksum for the bag, md5 of the manifest-md5.txt

## version

Returns the bagit version according to the bagit.txt file.

## payload\_files

Returns an array with all of the payload files (those files that are below the data directory)

## non\_payload\_files

Returns an array with files that are in the root of the bag, non-manifest files

## manifest\_files

Return an array with the list of manifest files that exist in the bag

## tagmanifest\_files

Return an array with the list of tagmanifest files

# SOURCE

The original development version is on github at [http://github.com/rjeschmi/Archive-BagIt](http://github.com/rjeschmi/Archive-BagIt)
and may be cloned from there.

The actual development version is available at [https://art1pirat.spdns.org/art1/Archive-BagIt](https://art1pirat.spdns.org/art1/Archive-BagIt)

# SUPPORT

You can find documentation for this module with the perldoc command.

perldoc Archive::BagIt

You can also look for information at:

- RT: CPAN's request tracker (report bugs here)

[http://rt.cpan.org/NoAuth/Bugs.html?Dist=Archive-BagIt](http://rt.cpan.org/NoAuth/Bugs.html?Dist=Archive-BagIt)

- AnnoCPAN: Annotated CPAN documentation

[http://annocpan.org/dist/Archive-BagIt](http://annocpan.org/dist/Archive-BagIt)

- CPAN Ratings

[http://cpanratings.perl.org/d/Archive-BagIt](http://cpanratings.perl.org/d/Archive-BagIt)

- Search CPAN

[http://search.cpan.org/dist/Archive-BagIt/](http://search.cpan.org/dist/Archive-BagIt/)

# SYNOPSIS

This modules will hopefully help with the basic commands needed to create
and verify a bag. My intention is not to be strict and enforce all of the
specification. The reference implementation is the java version
and I will endeavour to maintain compatibility with it.

use Archive::BagIt;

#read in an existing bag:
my $bag_dir = "/path/to/bag";
my $bag = Archive::BagIt->new($bag_dir);


#construct bag in an existing directory
my $bag2 = Archive::BagIt->make_bag($bag_dir);

# Validate a BagIt archive against its manifest
my $bag3 = Archive::BagIt->new($bag_dir);
my $is_valid = $bag3->verify_bag();

# AVAILABILITY

The latest version of this module is available from the Comprehensive Perl
Archive Network (CPAN). Visit [http://www.perl.com/CPAN/](http://www.perl.com/CPAN/) to find a CPAN
site near you, or see [https://metacpan.org/module/Archive::BagIt/](https://metacpan.org/module/Archive::BagIt/).

# BUGS AND LIMITATIONS

You can make new bug reports, and view existing ones, through the
web interface at [http://rt.cpan.org](http://rt.cpan.org).

# AUTHOR

Rob Schmidt <rjeschmi@gmail.com>

# COPYRIGHT AND LICENSE

This software is copyright (c) 2020 by Rob Schmidt and William Wueppelmann and Andreas Romeyke.

This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.