Class: PULDspaceAwsConnector
- Inherits:
 - 
      Object
      
        
- Object
 - PULDspaceAwsConnector
 
 
- Defined in:
 - app/services/pul_dspace_aws_connector.rb
 
Instance Attribute Summary collapse
- 
  
    
      #ark  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute ark.
 - 
  
    
      #dspace_doi  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute dspace_doi.
 - 
  
    
      #migration_snapshot  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute migration_snapshot.
 - 
  
    
      #work  ⇒ Object 
    
    
  
  
  
  
    
      readonly
    
    
  
  
  
  
  
  
    
Returns the value of attribute work.
 
Instance Method Summary collapse
- #aws_files ⇒ Object
 - 
  
    
      #initialize(work, dspace_doi)  ⇒ PULDspaceAwsConnector 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
A new instance of PULDspaceAwsConnector.
 - #upload_to_s3(dspace_files) ⇒ Object
 
Constructor Details
#initialize(work, dspace_doi) ⇒ PULDspaceAwsConnector
Returns a new instance of PULDspaceAwsConnector.
      5 6 7 8 9  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 5 def initialize(work, dspace_doi) @work = work @ark = work.ark&.gsub("ark:/", "") @dspace_doi = dspace_doi end  | 
  
Instance Attribute Details
#ark ⇒ Object (readonly)
Returns the value of attribute ark.
      3 4 5  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 3 def ark @ark end  | 
  
#dspace_doi ⇒ Object (readonly)
Returns the value of attribute dspace_doi.
      3 4 5  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 3 def dspace_doi @dspace_doi end  | 
  
#migration_snapshot ⇒ Object (readonly)
Returns the value of attribute migration_snapshot.
      3 4 5  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 3 def migration_snapshot @migration_snapshot end  | 
  
#work ⇒ Object (readonly)
Returns the value of attribute work.
      3 4 5  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 3 def work @work end  | 
  
Instance Method Details
#aws_files ⇒ Object
      28 29 30 31  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 28 def aws_files return [] if ark.nil? || dspace_doi.nil? @aws_files ||= work.s3_query_service.client_s3_files(reload: true, bucket_name: dspace_bucket_name, prefix: dspace_doi.tr(".", "-")) end  | 
  
#upload_to_s3(dspace_files) ⇒ Object
      11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26  | 
    
      # File 'app/services/pul_dspace_aws_connector.rb', line 11 def upload_to_s3(dspace_files) dspace_files.map do |dspace_file| filename = dspace_file.filename match_dspace_file = dspace_file.clone basename = File.basename(dspace_file.filename_display) match_dspace_file.filename = dspace_file.filename_display io = File.open(filename) size = File.size(filename) key = work.s3_query_service.upload_file(io:, filename: basename, md5_digest: dspace_file.checksum, size:) if key { key:, file: match_dspace_file, error: nil } else { key: nil, file: match_dspace_file, error: "An error uploading #{filename}. Please try again." } end end end  |