Class: Ddr::Datastreams::ExternalFileDatastream
- Inherits:
-
ActiveFedora::Datastream
- Object
- ActiveFedora::Datastream
- Ddr::Datastreams::ExternalFileDatastream
show all
- Defined in:
- lib/ddr/datastreams/external_file_datastream.rb
Constant Summary
collapse
- FILE_PERMISSIONS =
0644
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.default_attributes ⇒ Object
14
15
16
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 14
def self.default_attributes
super.merge(controlGroup: "E")
end
|
Instance Method Details
#add_file(source_path, mime_type: nil) ⇒ Object
28
29
30
31
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 28
def add_file(source_path, mime_type: nil)
set_mime_type(source_path, mime_type)
store(source_path)
end
|
#content ⇒ Object
18
19
20
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 18
def content
external? && !new? ? File.read(file_path) : super
end
|
#content_digest(algorithm = Ddr::Datastreams::CHECKSUM_TYPE_SHA1) ⇒ Object
55
56
57
58
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 55
def content_digest(algorithm=Ddr::Datastreams::CHECKSUM_TYPE_SHA1)
digest_class = Digest.const_get(algorithm.sub("-", ""))
digest_class.file(file_path).hexdigest
end
|
#file_path ⇒ Object
33
34
35
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 33
def file_path
Ddr::Utils.path_from_uri(dsLocation) if dsLocation
end
|
#file_path=(path) ⇒ Object
37
38
39
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 37
def file_path=(path)
self.dsLocation = Ddr::Utils.path_to_uri(path)
end
|
#file_paths ⇒ Object
51
52
53
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 51
def file_paths
new? ? Array(file_path) : versions.map(&:file_path)
end
|
#file_size ⇒ Object
22
23
24
25
26
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 22
def file_size
if path = file_path
File.size(path)
end
end
|
#generate_file_name ⇒ Object
41
42
43
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 41
def generate_file_name
SecureRandom.uuid
end
|
#generate_stored_path ⇒ Object
45
46
47
48
49
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 45
def generate_stored_path
file_name = generate_file_name
subpath = File.join([0, 2, 4, 6].map { |i| file_name[i, 2] })
File.join(file_store, subpath, file_name)
end
|