1+ require 'spec_helper'
2+ require 'find'
3+
4+ describe 'blobstore tests' , :blobstore => true do
5+
6+ before ( :all ) do
7+ @conn = Fog ::Storage [ :aliyun ]
8+ Fog ::Logger . debug ( 'Initializing Aliyun CLI for blobstore test population...' )
9+ system ( "aliyun configure set --language en --region #{ @conn . aliyun_region_id } --access-key-id #{ @conn . aliyun_accesskey_id } --access-key-secret #{ @conn . aliyun_accesskey_secret } " )
10+ end
11+
12+ before ( :each ) do
13+ Fog ::Logger . debug ( "Initializing oss bucket for tests: #{ @conn . aliyun_oss_bucket } " )
14+ system ( "aliyun oss rm --bucket oss://#{ @conn . aliyun_oss_bucket } -r -f > /dev/null || exit 0" )
15+ system ( "aliyun oss mb oss://#{ @conn . aliyun_oss_bucket } > /dev/null" )
16+ end
17+
18+ it 'blobstore cp_to_blobstore' do
19+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
20+ expect ( files . size ) . to eq ( 0 )
21+ files . create :key => "file1" , :body => "hello"
22+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
23+ expect ( files . size ) . to eq ( 1 )
24+ files . create :key => "file2" , :body => ::File . open ( "spec/fog/lorem.txt" , "r" )
25+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
26+ expect ( files . size ) . to eq ( 2 )
27+ end
28+
29+ it 'blobstore exists' do
30+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
31+ expect ( files . head ( "file1" ) ) . to eq ( nil )
32+ files . create :key => "file1" , :body => "hello"
33+ expect ( files . head ( "file1" ) ) . not_to eq ( nil )
34+ end
35+
36+ it 'blobstore download_from_blobstore' do
37+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
38+ expect ( files . size ) . to eq ( 0 )
39+ files . create :key => "file1" , :body => "hello"
40+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
41+ expect ( files . size ) . to eq ( 1 )
42+ File . open ( "1.txt" , "wb" ) do |file |
43+ files . get ( "file1" ) do |*chunk |
44+ file . write ( chunk [ 0 ] )
45+ end
46+ end
47+ end
48+
49+ it 'blobstore cp_r_to_blobstore' do
50+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
51+ Find . find ( "spec/fog" ) . each do |path |
52+ next unless File . file? path
53+ next unless path . include? ".txt"
54+ files . create :key => path , :body => File . open ( path , "r" ) unless files . head ( path )
55+ end
56+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
57+ expect ( files . size ) . to eq ( 2 )
58+ end
59+
60+ it 'blobstore cp_file_between_keys' do
61+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
62+ expect ( files . size ) . to eq ( 0 )
63+ files . create :key => "file1" , :body => "hello"
64+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
65+ expect ( files . size ) . to eq ( 1 )
66+ files . get ( "file1" ) . copy ( @conn . aliyun_oss_bucket , "file2" )
67+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
68+ expect ( files . size ) . to eq ( 2 )
69+ end
70+
71+ it 'blobstore delete_all' do
72+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
73+ expect ( files . size ) . to eq ( 0 )
74+ files . create :key => "file1" , :body => "hello"
75+ files . create :key => "file2" , :body => "hello2"
76+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
77+ expect ( files . size ) . to eq ( 2 )
78+ files . each { |file | file . destroy }
79+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
80+ expect ( files . size ) . to eq ( 0 )
81+ end
82+
83+ it 'blobstore delete part' do
84+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
85+ expect ( files . size ) . to eq ( 0 )
86+ files . create :key => "dir1/file1" , :body => "hello"
87+ files . create :key => "dir1/file2" , :body => "hello2"
88+ files . create :key => "dir2/file1" , :body => "hello"
89+ files . create :key => "dir2/file2" , :body => "hello2"
90+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
91+ expect ( files . size ) . to eq ( 4 )
92+ files = @conn . directories . get ( @conn . aliyun_oss_bucket , prefix :"dir1" ) . files
93+ files . each { |file | file . destroy }
94+ files = @conn . directories . get ( @conn . aliyun_oss_bucket ) . files
95+ expect ( files . size ) . to eq ( 2 )
96+ end
97+
98+ end
0 commit comments