Skip to content

Commit c17e330

Browse files
authored
Merge pull request #131 from aliyun/oss-select-preview
Oss select preview
2 parents 46ee6e9 + 0ddb457 commit c17e330

16 files changed

+5925
-14
lines changed

.travis.yml

Lines changed: 10 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,21 +12,18 @@ install:
1212
script:
1313
- nosetests unittests/ --with-cov
1414
- export OSS_TEST_AUTH_VERSION=v1
15-
- if [ -n "$OSS_TEST_ACCESS_KEY_ID" ]; then travis_wait 30 nosetests -s tests/ --with-cov;
16-
fi
17-
- export OSS_TEST_AUTH_VERSION=v2
18-
- if [ -n "$OSS_TEST_ACCESS_KEY_ID" ]; then travis_wait 30 nosetests -s tests/ --with-cov;
15+
- if [ -n "$OSS_TEST_ACCESS_KEY_ID" ]; then travis_wait 50 nosetests -s tests/ --with-cov;
1916
fi
2017
after_success:
2118
- coveralls
2219
env:
2320
global:
24-
- secure: ctHLw7ZKNZVoNa2V0ayZC++Gd1X/yaXhGLRizrH9JlgO5XsT/Xmiq+qZxgyo3PJH9sol5CJNeoL5GwgXraGwWtwJuyc6Ro87OvhGLUZSNsF6kKhU3t5r9aeS31geRIeyuzt9ES1mooUrvPzC8nTwPdw8uuJbdnLDGm/eNYe/vijY3xHbhYWV8LbFlz5Kotq4CNO2HZATch66yGiECF5XEYjQYhVaZlE/ExHY9esSJFvUOfCuQhFi9v4Z8X69KRrTXQyen12yTYsw96bTaqj3eYO9jyy0u0f5cvLbMz9na8A51tUhVTJBwL2yWxuKSHkgVppmLbDTtRYxJb8wyRGmSyH0X7vKBVQ30mMZeXu9hWf2699tkf8ReTDWKDpp3H9fpQla4jDMRWVEbusdDa/d3o+tpWQl6a988JMIIGcYGvF4tXwIwuMoJwRetAI1uN7fFc+K0Cuz7sFaoJg7uQ3dny6RB08+4w0I3p/EQMLRMEL/Ds8PLSWl0A+QQffpjDI/2drATqKEHTI0OjiTLDziTuQeHCxL8Sb/il68c7yw2sI6UUwtIGNS8WhcCFTvfjcBPoIgXrldl2FEl8phx5RHDRzwZtTcpMA767iw8AvX1rhCS/uQlVXp0oNgoZ2+mM3k+t23txMnGtmQ85cKJg7uSTUTFNd+CfWTIvIK+TYjs30=
25-
- secure: H/nQaNA1mBI9mAKcgGdyI775BAckF2kKSTwBksB7oofdcFbsRdIgQvBtxCcNJytIb/B2s9KpEEQFSTOEbJauudqqJv44gjZKrBjK1FIZrRqUSCe2uRZXwCQnd0ZR9VBbYm25i5hd7yOrlDUuHGnT4DPOV4gbAbvLrJZ/ph8dW//6iafGcSOzarCjOnd9bsYqINtIaXiJoT/HPOhEVX4P/q2J3G5321N6qlyRT3PztIho7g13R2B6e44ablWYFuVjiky/OdhIiKzs6iYb+8JiKMXh/yxo7cn9w8+HVDtokrHjK5L78KZTtckwxf9B0dZGfBfcNQWaztEw7lsWVsS4N7sVJF04QDMF+9bj3wwu0YZ1+6NP0NvRcfIHCezAH04HsIibxQ0OkCxO5O3HlrIBmyDZeZxJRnNcZi8TEKc7i2Yl9CpoZ/BXQGH6cVd8U+ievtJr8am319WBDPquybvNeUMlx64/c4MRf8f6bZyCLQUcwOKvr2Bz031DcJAIJTfqOwxS+MGpm1DViQQomzVEN3Ak1zOWlhhXSnOXEmfMjl80nc0g7+srm4MuBjSimzJHXNqNfxBhLXC2D6kH+R2+VIMg76v73sZBKKYwuUvaZz30jAfBCbQk0gJxWSu9hPtrx3fHg6xyaC3L91mFxbzLs1AIcsOPJ5tlXwcyy+c0cNU=
26-
- secure: gSGLnP60qPk/bHR5zeJ4tYesMNGuVZ0PY7fiiJfxT2GykaGrbzroLqIcvKXg8Y2mSgyEmS9jJv4/jZt/0lv21cYpQ4SYJTTzAh9/BqxNlPDyjQmRtPbaiiL7xz6H8SHGo3SpGmJoKwEFHdd3fAIgCiK69XiOoy8RH4jGOQ//jblXhT5hbB+UIrJJ3k1L+/oHGF38/kNQkRjuR6tiewqB6k/PRWgZJVJyBvM0nfejyEpUJeCnMSzu7/h0gzTEq2MaQZ2nvFZSJ2j7G9xlL4jGWV9nW8GYr+tcivrUvYNXyARafhg2Y9CPf6rchTqRxb7+8o+Nvfu29C44T/DHqZ3OitUYOleb7wR2a4BZP9FOvS7c2RCYxFnWK5t0UrFMdka4RaPJiIkhi4Y+c56bvmmpnUrIC97F9wf+luJf8h4bNg3zRHuleMTgzTFiyVB3kiO2oQ7/dtZQHBgidYQQI3WjRUgOFKKpPdAfo7+4xm1aIqmsSltotO4qGcUiZ7rMz0fxNTF8ZElN6kkGcWtJIGDFbAkxqf0nxC5AcrLi84D7xuR4Uc2fRxAAnyLEnnC1ox/jjMXijiBOvDWKp0kE8xmnwu61K/lGr4zWliubI33528fPhWuhoamgZNyBzOoCBh+PO47DyU9RPpKcBvCVd643w8jGXmHifJDVDqURfWKuJA0=
27-
- secure: ntp1isjiashF4FeSLKX3nNXYh2TNIcwuY6h/3YInh0bHlJbS6k0uyulyRNON6loAEuk22yF77OQZVYAFVkKfsVybcDY6aB96J6CTmobg0TEP/mtMCnI/mxtUsSLX/A8g+7Y9g4GX4KNeXSlDB9F7tIu3cwJJIgbowX5tpfzk8qKymgY8/TnnTZhsBgBl8RO7O5cFj/501Ts0kbXhkn5kQb+oTSdHbEzebkVeA1s7P8ejfVPLzPyXTgUgYwusgp4o4NIBdw41O6LuUZb4M6JNJG81fUq3x66axAqQJcmVuG+GcGc5gDVxa7fj0Mvbunj8ek/jK8QDJdM0IrNCf7sUIdvdTvtoCTM/9YG2D/VDMrJrbqZq7d9fJ557C8mcfdbm5FYKQ7LKrc7H6NQ8E7fZtqDTc0uFXNr0ULCZjbZwE8nC8cBquXC9VStiuz2vEb/BlzQPvEWXIepIg3Zg9Z//7iexKtC7WpQX+bopmLAhBhi3Yd+pWNPwhXc+emmBWmnjXrNKtDufieUsTSNpTozRRT4eHldL0P66kLT9TPdv1YfTNHcqt3sJPHEmZA+IOoi/N4RPpEqJqFaZNyg4Zr2Ce4GZww3O/mIg8eFZBwDLb69KMtI4ppi2LFoTMYs8ZgcuO/hBEmDToPuNyOGaWUswhu8UtajCMCyzHqN0PgtkkDQ=
28-
- secure: g8ulc7Hhvm7D8ek3oqKuFTF30ScZJnDvd5u3O1Eb/2SzpaSvO5XP+FaEbomdhdB2VJ1eS8qcQPIN1v36VaD+5QIq2Nslih1PrHLrB1iugGDgOngIXXENkg5CNJdABg068VesVUFUnKP4+K45OGoOJa+MbPX/az21WNutY3YDAZCM3rhwMuphWQk7tzQqHVSg7wn7gdD3oN5s7upaP0Q3A3+yhkdaiosbR09dFBWVfEiyB8mYhwy0L/Zj9sGl2gvPxD++we4Iugb/exppelFeYOYkPuu3airFPC0eg+1jZLWDwQpAu5gFpXpSFicI9386vJgdVFXywB8RK0dW+w+O+X8et0tdrlwhXBhotCCkvNcYVcR3bxu6I0jp3v6eZhs3Z5J44eQpDN2ItCAkT7TXDaSmrWJ0oLGGneXWXOOAtXCwYElOfS0WgVM3EYRZYEPMt4TD31Buyu8z707geLImRHy3ZwVhl84V/zc38BwvrNlLeY0UY2m67bYecqiiqjgLDYBYM9UhET2oNAtFTcH+j6s2bDvbMVlqomuvoBSANItP6+CFVb2nroTGp0rIyg8QR5rE5vl2dlzUrqXYHcvYochZselQlzbUzArdDBu5SEVMpTO50kwVhKH4g/5WCqhLT4QnApBqQIJ5OJJijHGpqztcd+U24RjCTVF9Eu4LAd0=
29-
- secure: GIdTrgApGlS3iacvcQBNe6jH2FBZ8fxB92g01d8QYzEYkn8vdORreib7SI2zALCWDIC2mVLUx7kP512HGfwKM/QMMwIlRY4rxLJASZ+Sr6PNYlLX9JNO4LGnJMKYa4pleEfLPwcSjNvrcFAL9qszT/Rj5ADkzBnYm6f45EpgWhHg6WVT0OJOICzSEu8Ey1Autq0YWceLEaGTTVhG7oI+ZYEriHNGAXaNyiYHFNgFvcN+2sZ5FDiwTBCc3T2jOuvVZT86UcPoBCptR6mD8EDamBfqVFW1B25vAxN6X5a+e+TzGAKvqufgbIZqSFeV97DIUrAHHfmY4vd9KU7LcqOLyzpbUrzdn38uRU4fp0Y9nK5G90pH5YKyA2qRgb3R7RbTwaowrPFow408OKyN12Qevpiw86fC6mEVPwIM6PYNSM0cU6E7ZKgojDAwCmA1TWbZWd8MkGuR4JddDcbEqzlD0RiBd3Lf6/DwbY80U6/gbHnBKhHxaFdaaNu1VCoKnhtzLldlI6KR4KwJ8bQEXTT+PkC7e5RKq6lFg9TiJInrwqRPCOhl8IHQQz90fApgDTLsIptXvs+n22tC7rLVRaSEiOJRi2S/42p7JWqSic8KIjOS53pVuFk4I0i0ZRDk/ClT7moi/NbD15QeNYwl6M6gkJvVPPqxAO+nkEK6jsOD1Ns=
30-
- secure: mJK7lGO4qC2bd12yDYdDJmzdolwt0oJOWnPHj7/D+00lkbRr0wvw8uffH280P/+7ZfhwffG1ewi1LvF7C8BR6YMffte52uMEmFwHIbwhnhD8MIAWuKa8BM6rxaTkxy0mJOQuWnhXVSZ/6g1RUfMG0f/YVr0pXSAVbFbny+SZfz1iS9yn3csC984e2i8bij7yflALSNrZc6bmfUy8BcJaeyLUdTAlgDhfVBrqzjpUD97xogx99OGxxOjhOnwFbWHIpPMw58GguN+DddtZ7fVSweNhyTKRY9sk9qN4STuLMqV4hqE+KZl4Fnw+hcTQBR+eDNyn3FaBoMW1aCVqHFw2GnnJyv+D18QKD+RYZuSWJBMx/bkY4OGNpB8vAjFiWyAzeQbrSxtDJ+2JrE5h7YMPe1Zo5mVNBFjNTgGKEOwfH95WUfUj2mnHvaijFPKWBGECN/GsiH5/HXlqf1d/TPlRn6k3M8RPdQLdLga+sZkjoPHbMm2TVd2s8RErpa6yjQCNBZmHeqTosZK3B55hNN7+izuw78QDMEND9V97tLkkxuQAyBq4qKvmdUYUh2y5XLndNCrVDM7ndKjxzTKk9rIB37U72+cxPFWEMT7ICIdGo6IS000NV4DEq9dDNsCnMtXXROVvphDe3r8GFT4oWG4erkSOnX9vi9e2/dx9zyNjFdk=
31-
- secure: ELFYoTRfvUM9P02W4Jnh5uXIe+oLL1CpR8kTJI1TYqQ2YVUoujxzKJGGCHzg6L62xwYLCFgnE0t9PK8T2U91mvW4hK4MHE9PxyqTyAX6vuVUVb/bNd9zCVc+T6fTfQ/Z/htwiNW/lp1yiPwOZdybONQACnpD2/Msw1bu/ytt1v+lWYQg80YexgAoJUrOOBadO6lDZqeIUziQo/0JJMhUoJA0jPS79FLP0foXfOKKDfVIm+J7DhcRGsc2goAOaCDrsynlW/zM/XPYBnyutSPgVR+rC8g3ReMSZOX6rq1PfRIXDjB/LVLMx75MO7u+vAFUOqBS5an05CGSwCbAUhxiM8QaF3qD/UnE9bFVksFv0TPvWeZpMlf8Pll6tEmo01SmlrfeUVFYgxwiPkA/l1bW+zMB46bUz35oTVJLJ6am2Fx/fxVeE19do1yiFWRmmwpsl1ya27mVc2jLmS9duYUbTKExZJF6vBU8m8W8WquWxKRxogNNVTX52EvelDTCbR6UE3uZ7NL/VJqrT4b8V754Dl8TyX2LehC0sKKTO7FqliPJmeG3S874wOVW0Qzy3UnjRSB1XUCbFn4bkT2CvhTx4xJIJFQHfzeUIUYADn3/MpXaruXmjrq413ZTKZ+a2d2eKjf4aJBfGC0j9Hd83S23rlDlS4rDENu3aVaytwE8xd0=
32-
- secure: bUUTeIOSWxvhwGVCynhIK4SAHA5EIc2wWU6wKFV89/AesLb5VgOXvrtpsoamK8JH2QgiAqrcaM4g8b5299zJGRpu67FEg7e/lySAZcbpkDHJvC+YcEPf6NaLh9Ixx8ynzAA7yQkPIekvzPExxhjxcBc2j2Y9QZTYEFw8rY6T1XQjzVf3bc19J930KVUWzl9gG6X9sxO/Qdb4WF/ii87LWLId0EoGloSGA2tqZuhPH8fog1mYAz1FdqHVdtDKQkIQTvMydzaPPkreC18GYK7xRW+Ag0Uv3FDsWPbXbYZCWMbwtgqXM54SPMo43ksVsGQS6tgZBowrOFTYK/ivIy24QhNamFzoYsSvkbzLwLsRPN0h3abTU9oXc4qQ0GPTBsR5B3WFcO3avt8vyWv6Z9WUOvDnZhmWZZpT8ZXGoDbxSQ4y60iu/z1WEynRacu4R3PU/lHs742VY3H+LggIbAK3y2K18ogsIZw3IMVExkoHeTpSC+0igNxBbimBZQsu0ijbrUbgP6naEt7dMji+MuiqRrQtMqZQHwK8WQMiX4oe90Ori8GZ3Jj6icO75W8h9f6+mTdpe2je5O0HkB5Cr5LFxEBroxypKAUpSErTr6H520EI8vtRMyAjTEgwRTNo6JSqLFnREuGqaAMyYvZICMEmS8Xoer2ZXRQ6jRXDOr4MwkI=
21+
- secure: V6dsXnhtPVEq4yOPqAN1KlDgB3SXdE0+ZUJyPG0YX+WeX1UWohjjYc2Uoc7WJQcHtm/oJ+CP350EzIfQ7dis6pcUojanbVoM6onYfd+0zdDetu5t4UtRlq9+3eAG9XgMIyk5tM1OEyOUXcDBvyQzbJDxb0vwHU/Y3dww0bCRLpgk/wpw/nguS80ItCTEpICi9t4i72SE1+k4AQbJP8NHsq4p2I0DR0w5It78GLxzBQ0vdvuUQ3iHiZFCos7DO7k7sNcH2FrpCRx0iLDlkITCKP7CNrhNar4/Jy2FQpqcAGvs1WknjjfgEZofVxEBPzSOotVi4/REe5Jo2dQAsxOTBJqTbfs96Pr5ATll4A0PzkMn1NxdfC7cDzCCMTR2nssagMNpiKZJSD/5otDm9QWZAr6z6xUoWB52zkdw2WKfZeC7GoWUgs0T6alG8+Jdh0zv6PjFgL6Iz9QBeYiz8FCF3jCr8TBXkssKiRGSpqk61oNXDu+DDrqAnEBf4iliV5f9qFmK+IwlDAyf5UU+eYdsPDEMfcQPr00D/I1MU6FGe/PpollLZgnrKsTLDAzQcjtvWiwxZrn5prh0DiQ7OJyYoU1xD3660D4BZiPyHCWkwxoycm2PjMzt68bzRv4GWvpoIIYmB84n6dIDWBESjPZc2IaZevpgQASTcM4UXmG2flA=
22+
- secure: GJMIZEdwJJqCDS/MsWghDSUxn6FT1acaFJLPQUBmCxEKyaN8hFYZ3ad7CCJDw2w2GWM+0YHVkH4yOG2UraoRvYBrTULblCfs0tO0lo8KwXQ44AN6+qskBacpb09/9Fy2rwPEK56KUBsvnfPl5Fx7ibEO4GiiGKRaKwpZWMeRHs6e8wcq3GwIDnTbJLEGy2UXvG8HRz89I5wK7ucU36FXmQHv5AEpXliNNlv0w2Ng8Zh6IxzTG3G2uhqbMOIZSl3UCWZuFEaSj49dko8ct2Tf0+/3Iu54C/bpRy5zEyg/2N43Ie12gppFjf55ZcG7m573h0bP+QzA3XVxZxbq9UbGO+hYLoIGnfDy4WmG5XMyhZiNjXWgs7swE6imBPRq0xIGcDwdqBxedzhZiaQ245Gi8MD3Ue67hJXgA7VK8MevoK0brBaT4dMmmzkXqxa2R6gjrtCkG/74rvrzE+PCKDJwavzFSAVKSNomMki+yXplUj8gitQoFTkjb1m0F3xufoWkC0s8HdSOnn2Wv13lstdlyOwlNGbGSp6lDQ7PqCsFKTQEnJulFFTj5pKHRt2nNOVmcSt9vemqGQ7lG4YKnYpMUimtQdR4sLPSlcVw+e3Hcv36nfjLQQaJmPlbIakC3rbKTKZ7scK1H8up6AP1f0laFiEInI5ZbY5P/tU4E5X74Cs=
23+
- secure: n99BFzEHMT3Z00RxCgfPUi6Md2ip/VBp6+mlyQ9cWHKDmLCXOFaG8fyQxWMMv1VyaUJl2DKlOZisUWKt+WFq5Pa4ityx+8/lLrmrEN1hi/J+k40qNVpB0nOIZNa356rJVQLYUyGYYGcbIhO8BjCwab2RbTaOnVymGETv6GnZwP0TIZWS1gF+iNa+hlS1vi6qrQ73iZAoiwPOWu54TZCs6uQA1amIRGtuK+wJEv2YHPXYUWjJtPxrMAFTimuxmwesPtiNCWMh9HhiuOZyCFpUipawd36WBq6jKrl6T4hby3J3d4PxtdS55fg0T0VbFwdj2sqxOWtll25LHvV/Bzzua6ohUBHD8WP/hP9fxWGmnep+0iEjWl3t6ppDgkuDEBYctR2Ul/4nSciPYemP/jExkNsIRQVFdzGBq5ez8nzC7ZAtqqIAgqJxmKiidW/MEWlDfJdJOfc3PptrrEIzheQVXwrxeot3NTsKHR/UO9PHdYHYW7loBCuYnRBg2ASKApnCGJhYeq/+YQFLKGPczBrcQLhJH/jfoNdJw8D6GgVdze/2btDS3Xewr2g/vvkDmVQTbc6ypVt73IP6C9a7PbAefN+O/ss02zBQKgUM9UuebVCYk5su9GmabApydaHkISRdueDQCeD8q+ZWuc+hFW0nWRZOpCQBwam/COruhiGgkfs=
24+
- secure: XUDMtQQ/QlUgplxeHabZk8tjEoN76S2mdJuxliijEuJ1fypt2v7oIRrvM870EraIHciagAtqvi9VQ3YkeiQfVIEEVztYozcVp8cEpZAEq5pGYDClCeIaY/Bu9Oi/xdFImArowfPnU7Fnu32bRbF8a+RLU9PZpmadzlhwrv/FlF/4KQ1pc10cXOxaBtlxEaxJ0e9fetdHxQAF9opnjmJZGAAtAj7YJ4SBR6LuFE0NrVKwkAMqWxk8SoawFNUTOu2wBtUzYox8GPZLQlfLAWUA9LXOYP8tOPA5T97pTfQwlcsxYmIDACvu4WxfP8+FHGAFGb4SgoGnZgj104ZIu9rbb3ksU0d6iz0sq8Vx4/C5KiD3psJRfmoPdjVSTs+omZQXK4Ri7X4SltQ9JcBm4RN0iWLSLUaLs/kzfb5mj4kfC5GsD0iDNZRCCFkhjp1N81r2cdBhzgZ7l5HR1blbkbiTy2Tr5u2Ah2bIHVYY1OwVNWA9ToWJCsDmW1hGsPP23l3WHE3V25mATZYhqwqdbEYsMVTlYkTEf/tYofnC8Ix25Oz5Y91iie9nCYODhfd1/RnOFkE+ZxTvatkGw8nwtgYR9JSF1rnDWIyEZG16r2pzdcDzFtCfjajf171HFk5r8IY9zk5sn5PdW1nehvX/7aERp72ah9Dh4wgQP52mgT/BPiE=
25+
- secure: S82CrrIcC3BLO4PH6+Tbzo4ZJz4VCnW+Vwqz8Dij+Ca8c+1ElBz4+5u8mXZDLVktW0jrnbq5jLYpMBBNrToKRR5sFjR0Pirl31ZPlzV3SuW0GqOevKkIkkLheoJR8RGwvJjsPtrRZryrFd1AaDhRDL+PTG2MYBK8HLbx9cd5hAaG8zVchpPgahCDsUHgtGDlzJ7tzGZewRxCY8yJRz0TSqqisANQDHWklZLcZoqpg667wsHc+LDV/uP4oh02flN2fxikLz9n2l+Yd74eBaB09aIpWRxRyZoFom84OukcaWnAtJ6LGaaoc5PyNq9gT8c/E0zEzUxgpYCoVfwGD+TTqBispW4/xpsqTF8yJcUtI6amDzK4ShHIS138T5npYRUmpqjPLqI9JgClQ0yDz3VLmOyNjC7JHZ790OJltV3XXhxdL0wXK3dF3GP9NNtpmSTT3ioXxMhLx5uDcaZV4YB4oXGaACdjq73TTWoPAjUZrqhY/47OPOxs09PsBC+1Llsolaa85aVu7iDOyxaVWy8fC22wPLxh0PLuLfOooWeywYYl5wVxeB0FOa8SKlSo5QsiNl4nGOo4r+X8rzGF9Hw6Xky7zbFnfIY7giQtVi+7GArhioImW2/dWy9DWCsG69E8MhcadmjmeYmxf28meY3A/NknUyvxLOuRP+4IWjFNyeg=
26+
- secure: T6aKjuENAPhF+CvD1g6eImQWhlYvIMCSjuhenhgYtbdrRhlulz9eK/nhyZ7Ek1mvm++WQth9Vp8gtcFIqPcGsHx1Tn7mc5JvCvEooEH4+nMV9hb0r+VLxqU0wIgGF3+4R3jOw+HB3Mbu5orckOJ+SapPsPY7iw7RzJ8KLIzMDlLhzxjJzlK37r3lmhCTz4IFqKNmWoJ9EFe+Q56ljPJN+AuyPoR5p693HlgPvWr5eW3occk+gO8/2Wo7dG9PSD9D15lL2uOy0FdsLAMyk3RbXza7Xj/Ekh/QSrn6V2O9DFvImkO5Vx5HZCIJ0Y1TugqXVt4CdtmMxmCQ4zz8+QlVEFa/0iRKvizBh9q7WvslZxqKyFkKFBxkGJ2cNAe/eVP5wSISWjMBV3C1aCv8AvPkLrZDzoqLJ8bv13MbJyZL7Quo1eO+M55h4fYP7dsvL3GHsogg0bId4SNtHKiaI0mH+kHoYixdpQXHmpg+SaCTS1JGmtUnlaTv1ot7GJGQ9rsskfglkdiENKi27HT/hQa9t2rKoilHoYzMrIwrwkpowCzmWx+vLVQPafhD9oOzHscsu77r+ITAskDjVXQyY/0OZE4Q6Uyi3hX/qlPzEJOiVi7zC1OBJHJIuHeuBnKBGe5lLIyFV/BhGYJDwm+CeFAm6b1f+NNaI/kKE2yWy1T19Qk=
27+
- secure: YAsq+rBWCPbIivN0oG60LDLEGP0Wm10Fke0hY9i1YL79QP3G27PzyY8SMyeonb3Y0FVxGGXkuO+r2VmhWlt5MDdZ3XNn8eNvv31Hu2WBYG38OUeWboEYUp1IDym0XyK7AHM0klPC4brAZPdVm6eRZwqSEHqoT7fyugoSiCzrfgfzmxA9Y8I/vkLd7Y2g0YhB7XlBlFCYi4l8si3ZILGoYbc1Q+x7Gqesj4MLHV7lK0nMkKOWDzx7b5QTfNhN7LYQoo3ZHUykAIZulxdohIANy+Xy7Ezd6FxA86quwPa3+7P/vULoRUgxye7FencfXsLmwN83TyoxIjB9vDkJlII8DTn5rEReV5XS2jtrsUL7e+DeMQCqYrZnjnPkPofrvkMCdmYhRO8TdU2gwUO3/sC8p8geKYjsP4YdmHMIopmWbx7swRJMSHN7N8ZHlshkcpIcTbDsYN1hddgMP1d9AbWMga3/mZLSQUjjTY5HLOdKaJXhiK9BQHeDcaVpz8wAcK+qyuRUgoYZSwpWVS2Za2tK3P/6Uc12KXk4ApPvVgyAmv5x7mH4rE2sve6JjL5zq33mmgmL6ND1h/k0kKFvfh427QO5V9GJYrTdNPQRc5cDV/HzsKAiEREDQqkuquCDOPVuDuIAP49qrcK7yaJ3aFMgKo5by8MFA5mEzwc8mqym8F8=
28+
- secure: mVZZ77o5zuIsNuKnivEVAMpDvaiGi7GCB5vuCd4s2XOzq80fw62ukuKhY3ZX2NiNmTLqWZdEode0ZBHwcKO094mV6azIzUDtBYbK4SI8J1CPv2uZ7MXqCLpANb0OBJ3q8kwzkgZQCuimKLDVugzBzmOSO2TSGVI8/d8JsSJjP4LFyJuQ7AOrDyY3E+Cnw5HgGRy6g2E2ST1hQg6JP/5iZ5aEdOGVypFM/zLhLrEkYoiQwvUEDTLBmwrONEI7xp3g2YQL7OebRn4+K5AQ3nmnCkabc0m2nFh6stJv+JIVY/+ClTxl9gZ2iLVufK4whDfRC5gtw4774EdANrB4ug4sYnKqd4IUqDV2VS8ykYpKj8D5ufQrOJ20GlZBsCtjc7gCVHn3bg762vqtbfDVMMi+/gp1zP4oziDcQSdOVRVad46neI4P8DsUoNLQdwsmoia13v62XAO4noNOAPGIA5Ow4pNZroWBWJ2M4tpVWsiNLrieaer9DvUAScTVRjZQsQXfcABXnROGTQB+SAkGsIIxqVuNDJMU9JvWjwRNOmR51l0dix6kGdXU499LtVa06QfdB0rShg2+yxWw8IccdLTbpeO0o79bKyD2i5aDNkI7H46Hkg+hZjjVDhmVuMQtbWkC2lNwTNeb4PBfpLY37OVCkClMII80vBJa/dNzwSBAOaA=
29+
- secure: QoWA0HlW89OjgdX13SIvsz+LWbg/u1xNyn5rwPtIu2jSXB/vKjNpPulV7E3FlAiY2UvCKOcpT+HZO8zNatkWs3NlJw9efJVxRUnBhXITT6VEa592nhNVvR13dyqztn0qyerLPGB9pvXZQhWnlv7+6jIdEtoDOiBaUZ2celWcT9uE37hLYv63PJ59Fy3wDDx2y4LDP827P6oPLaQvG6bW+JeST27yrB9dwwJ4SMJttXWEUaNCLrcRVLKrgWfDe8a83Zzy9uOAoFSrJyMiR6+Tdhe3lmca77Sj4YEWDC6UH5qJg5nSfKlxlcAhVC8bg8iNr0yEXouW9CmQ7XRowPb0C5INSVnNPRljTMc/Gp9iemDBzi3k2TS9DS29FyDNNYcw4aPuq0QuOXpN9Sdk+842OcYQM3WKXVacDO2aIbXpFJLFu4YVlqnEnunvl/4stty/LDtQ6VAFzvp8MGq3ll25JfLWQ/4a5yAOhQ61JeaT2BngnF5azzEk3VUZ+EeZGEfTxeyKxu5R4rQj3DmXmrmvKWV/9X4bHoOWzlV1ofhJt4BRfL6B/KTwR4SyAmU0R72+OAEmm074HP2hf5muzvsN6X3IA+7QgEfiiq+ZRZI4SRQxQAYezbUIgGdIF1IBNj01EvkdYHYXoJhbMrqESdeiVyQAVEk3YnMPcvG4VQ99w1k=

.vscode/launch.json

Lines changed: 116 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,116 @@
1+
{
2+
// Use IntelliSense to learn about possible attributes.
3+
// Hover to view descriptions of existing attributes.
4+
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
5+
"version": "0.2.0",
6+
"configurations": [
7+
{
8+
"name": "Python: Current File",
9+
"type": "python",
10+
"request": "launch",
11+
"program": "${file}"
12+
},
13+
{
14+
"name": "Python: Attach",
15+
"type": "python",
16+
"request": "attach",
17+
"localRoot": "${workspaceFolder}",
18+
"remoteRoot": "${workspaceFolder}",
19+
"port": 3000,
20+
"secret": "my_secret",
21+
"host": "localhost"
22+
},
23+
{
24+
"name": "Python: Terminal (integrated)",
25+
"type": "python",
26+
"request": "launch",
27+
"program": "${file}",
28+
"console": "integratedTerminal"
29+
},
30+
{
31+
"name": "Python: Terminal (external)",
32+
"type": "python",
33+
"request": "launch",
34+
"program": "${file}",
35+
"console": "externalTerminal"
36+
},
37+
{
38+
"name": "Python: Django",
39+
"type": "python",
40+
"request": "launch",
41+
"program": "${workspaceFolder}/manage.py",
42+
"args": [
43+
"runserver",
44+
"--noreload",
45+
"--nothreading"
46+
],
47+
"debugOptions": [
48+
"RedirectOutput",
49+
"Django"
50+
]
51+
},
52+
{
53+
"name": "Python: Flask (0.11.x or later)",
54+
"type": "python",
55+
"request": "launch",
56+
"module": "flask",
57+
"env": {
58+
"FLASK_APP": "app.py"
59+
},
60+
"args": [
61+
"run",
62+
"--no-debugger",
63+
"--no-reload"
64+
]
65+
},
66+
{
67+
"name": "Python: Module",
68+
"type": "python",
69+
"request": "launch",
70+
"module": "module.name"
71+
},
72+
{
73+
"name": "Python: Pyramid",
74+
"type": "python",
75+
"request": "launch",
76+
"args": [
77+
"${workspaceFolder}/development.ini"
78+
],
79+
"debugOptions": [
80+
"RedirectOutput",
81+
"Pyramid"
82+
]
83+
},
84+
{
85+
"name": "Python: Watson",
86+
"type": "python",
87+
"request": "launch",
88+
"program": "${workspaceFolder}/console.py",
89+
"args": [
90+
"dev",
91+
"runserver",
92+
"--noreload=True"
93+
]
94+
},
95+
{
96+
"name": "Python: All debug Options",
97+
"type": "python",
98+
"request": "launch",
99+
"pythonPath": "${config:python.pythonPath}",
100+
"program": "${file}",
101+
"module": "module.name",
102+
"env": {
103+
"VAR1": "1",
104+
"VAR2": "2"
105+
},
106+
"envFile": "${workspaceFolder}/.env",
107+
"args": [
108+
"arg1",
109+
"arg2"
110+
],
111+
"debugOptions": [
112+
"RedirectOutput"
113+
]
114+
}
115+
]
116+
}

examples/select_csv.py

Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# -*- coding: utf-8 -*-
2+
3+
import os
4+
import oss2
5+
6+
7+
def select_call_back(consumed_bytes, total_bytes = None):
8+
print('Consumed Bytes:' + str(consumed_bytes) + '\n')
9+
# 首先初始化AccessKeyId、AccessKeySecret、Endpoint等信息。
10+
# 通过环境变量获取,或者把诸如“<你的AccessKeyId>”替换成真实的AccessKeyId等。
11+
#
12+
# 以杭州区域为例,Endpoint可以是:
13+
# http://oss-cn-hangzhou.aliyuncs.com
14+
# https://oss-cn-hangzhou.aliyuncs.com
15+
# 分别以HTTP、HTTPS协议访问。
16+
access_key_id = os.getenv('OSS_TEST_ACCESS_KEY_ID', '<你的AccessKeyId>')
17+
access_key_secret = os.getenv('OSS_TEST_ACCESS_KEY_SECRET', '<你的AccessKeySecret>')
18+
bucket_name = os.getenv('OSS_TEST_BUCKET', '<你的Bucket>')
19+
endpoint = os.getenv('OSS_TEST_ENDPOINT', '<你的访问域名>')
20+
# 确认上面的参数都填写正确了
21+
for param in (access_key_id, access_key_secret, bucket_name, endpoint):
22+
assert '<' not in param, '请设置参数:' + param
23+
24+
25+
# 创建Bucket对象,所有Object相关的接口都可以通过Bucket对象来进行
26+
bucket = oss2.Bucket(oss2.Auth(access_key_id, access_key_secret), endpoint, bucket_name)
27+
#objects = bucket.list_objects()
28+
key = 'python_select.csv'
29+
content = 'Tom Hanks,USA,45\r\n'*1024
30+
filename = 'python_select.csv'
31+
32+
# 上传文件
33+
bucket.put_object(key, content)
34+
35+
csv_meta_params = {'CsvHeaderInfo': 'None',
36+
'RecordDelimiter': '\r\n'}
37+
38+
select_csv_params = {'CsvHeaderInfo': 'None',
39+
'RecordDelimiter': '\r\n',
40+
'LineRange': (500, 1000)}
41+
42+
csv_header = bucket.create_select_object_meta(key, csv_meta_params)
43+
print(csv_header.csv_rows)
44+
print(csv_header.csv_splits)
45+
46+
result = bucket.select_object(key, "select * from ossobject where _3 > 44 limit 100000", select_call_back, select_csv_params)
47+
content_got = b''
48+
for chunk in result:
49+
content_got += chunk
50+
print(content_got)
51+
result = bucket.select_object_to_file(key, filename,
52+
"select * from ossobject where _3 > 44 limit 100000", select_call_back, select_csv_params)
53+
54+
bucket.delete_object(key)

0 commit comments

Comments
 (0)