Class: Fog::Aliyun::Storage::Directory

Inherits:
Model
  • Object
show all
Defined in:
lib/fog/aliyun/models/storage/directory.rb

Instance Method Summary collapse

Instance Method Details

#destroyObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# File 'lib/fog/aliyun/models/storage/directory.rb', line 12

def destroy
  requires :key
  prefix = key + '/'
  ret = service.list_objects(prefix: prefix)['Contents']

  if ret.nil?
    false
  elsif ret.size == 1
    service.delete_container(key)
    true
  else
    raise Fog::Aliyun::Storage::Error, ' Forbidden: Direction not empty!'
    false
  end
end

#filesObject



28
29
30
31
32
33
34
35
# File 'lib/fog/aliyun/models/storage/directory.rb', line 28

def files
  @files ||= begin
    Fog::Aliyun::Storage::Files.new(
      directory: self,
      service: service
    )
  end
end

#public_urlObject



37
38
39
# File 'lib/fog/aliyun/models/storage/directory.rb', line 37

def public_url
  nil
end

#saveObject



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# File 'lib/fog/aliyun/models/storage/directory.rb', line 41

def save
  requires :key

  # Checking whether the key is a bucket and meet the multi-bucket scenario.
  # If the key is a existing bucket, return it directly.
  key = key.chomp('/')
  if !key.nil? && key != '' && key != '.' && !(key.include? '/')
    data = service.get_bucket(key)
    if data.class == Hash && data.key?('Code') && !data['Code'].nil? && !data['Code'].empty?
      service.put_container(key)
    end
  end

  true
end