mirror of
https://github.com/Stone-Red-Code/dvc.git
synced 2026-11-06 15:28:28 +01:00
* remote: add support for aliyun oss Usage: $ dvc remote add myremote oss://my-bucket.endpoint/path Set key id and key secret using modify command $ dvc remote modify myremote oss_key_id my-key-id $ dvc remote modify myremote oss_key_secret my-key-secret or environment variables $ export OSS_ACCESS_KEY_ID="my-key-id" $ export OSS_ACCESS_KEY_SECRET="my-key-secret" Ref: oss python SDK: https://www.alibabacloud.com/help/doc-detail/32026.htm * Not needed, since we don't support external dependencies/outputs on OSS. See https://github.com/iterative/dvc/pull/1961. * Add a way to test oss storage using docker. Start a container running an oss emulator. $ git clone https://github.com/nanaya-tachibana/oss-emulator.git $ docker image build -t oss:1.0 oss-emulator $ docker run --detach -p 8880:8880 --name oss-emulator oss:1.0 Setup environment variables. $ export OSS_BUCKET='my-bucket' $ export OSS_ENDPOINT='localhost:8880' $ export OSS_ACCESS_KEY_ID='AccessKeyID' $ export OSS_ACCESS_KEY_SECRET='AccessKeySecret' * Use default key id and key secret when they are not given, which gives read access to public read bucket and public bucket. * test: add oss tests to appveyor. * remove unneeded tests. * remote: use s3 style url for oss storage and make endpoint a configurable value. Usage: $ dvc remote add myremote oss://my-bucket/path Set key id, key secret and endpoint using modify command $ dvc remote modify myremote oss_key_id my-key-id $ dvc remote modify myremote oss_key_secret my-key-secret $ dvc remote modify myremote oss_endpoint endpoint or environment variables $ export OSS_ACCESS_KEY_ID="my-key-id" $ export OSS_ACCESS_KEY_SECRET="my-key-secret" $ export OSS_ENDPOINT="endpoint" * remote: fallback to [] if there are no cinfos Signed-off-by: Ruslan Kuprieiev <[email protected]> * test: remote: add oss CLI test Signed-off-by: Ruslan Kuprieiev <[email protected]> * travis: use iterative's fork of oss-emulator Just to keep things in-house. Signed-off-by: Ruslan Kuprieiev <[email protected]>
28 lines
917 B
Python
28 lines
917 B
Python
from unittest import TestCase
|
|
|
|
from dvc.remote.oss import RemoteOSS
|
|
|
|
|
|
class TestRemoteOSS(TestCase):
|
|
bucket_name = "bucket-name"
|
|
endpoint = "endpoint"
|
|
key_id = "Fq2UVErCz4I6tq"
|
|
key_secret = "Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsu"
|
|
|
|
def test_init(self):
|
|
prefix = "some/prefix"
|
|
url = "oss://{}/{}".format(self.bucket_name, prefix)
|
|
config = {
|
|
"url": url,
|
|
"oss_key_id": self.key_id,
|
|
"oss_key_secret": self.key_secret,
|
|
"oss_endpoint": self.endpoint,
|
|
}
|
|
remote = RemoteOSS(None, config)
|
|
self.assertEqual(remote.url, url)
|
|
self.assertEqual(remote.prefix, prefix)
|
|
self.assertEqual(remote.bucket, self.bucket_name)
|
|
self.assertEqual(remote.endpoint, self.endpoint)
|
|
self.assertEqual(remote.key_id, self.key_id)
|
|
self.assertEqual(remote.key_secret, self.key_secret)
|