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
12
13
14
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 12
def self.default_attributes
super.merge(controlGroup: "E")
end
|
Instance Method Details
#add_file(source_path, mime_type: nil) ⇒ Object
22
23
24
25
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 22
def add_file(source_path, mime_type: nil)
set_mime_type(source_path, mime_type)
store(source_path)
end
|
#file_path ⇒ Object
27
28
29
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 27
def file_path
Ddr::Utils.path_from_uri(dsLocation) if dsLocation
end
|
#file_path=(path) ⇒ Object
31
32
33
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 31
def file_path=(path)
self.dsLocation = Ddr::Utils.path_to_uri(path)
end
|
#file_paths ⇒ Object
45
46
47
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 45
def file_paths
new? ? Array(file_path) : versions.map(&:file_path)
end
|
#file_size ⇒ Object
16
17
18
19
20
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 16
def file_size
if path = file_path
File.size(path)
end
end
|
#generate_file_name ⇒ Object
35
36
37
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 35
def generate_file_name
SecureRandom.uuid
end
|
#generate_stored_path ⇒ Object
39
40
41
42
43
|
# File 'lib/ddr/datastreams/external_file_datastream.rb', line 39
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
|