def listdir(self, name): name = self._normalize_name(self._clean_name(name)) if name and name.endswith('/'): name = name[:-1] files = [] dirs = set() for obj in ObjectIterator(self.bucket, prefix=name, delimiter='/'): if obj.is_prefix(): dirs.add(obj.key) else: files.append(obj.key) return list(dirs), files
def listdir(self, name): name = self._get_target_name(name) logger.debug('OSS存储后端:列目录 {path}'.format(path=name)) if name and name.endswith('/'): name = name[:-1] files = [] dirs = set() for obj in ObjectIterator(self.bucket, prefix=name, delimiter='/'): if obj.is_prefix(): dirs.add(obj.key) else: files.append(obj.key) return list(dirs), files
def listdir(self, name): if name == ".": name = "" name = self._get_key_name(name) if not name.endswith('/'): name += "/" logger().debug("name: %s", name) files = [] dirs = [] for obj in ObjectIterator(self.bucket, prefix=name, delimiter='/'): if obj.is_prefix(): dirs.append(obj.key) else: files.append(obj.key) logger().debug("dirs: %s", list(dirs)) logger().debug("files: %s", files) return dirs, files
def delete_multiple_objects(self, prefix: str) -> None: for obj in ObjectIterator(self.bucket, prefix=prefix): self.delete_object(obj.key)
def list_files(self, prefix): files = list() for obj in ObjectIterator(self.bucket, prefix=prefix): files.append(obj.key.split('/')[-1]) return files
import os import json from oss2 import Auth, Bucket, ObjectIterator with open('package.json') as f: package = json.loads(f.read()) Project = package['name'] Deploy = package['deploy']['prod'] auth = Auth(Deploy['accessKeyId'], Deploy['accessKeySecret']) bucket = Bucket(auth, Deploy['endpoint'], Deploy['bucket']) for obj in ObjectIterator(bucket): bucket.delete_object(obj.key) print('Delete <' + obj.key + '> Success') print('Clear OSS OK!') for root, _, files in os.walk('dist/' + Project): for file in files: local = os.path.join(root, file).replace('\\', '/') key = local.replace('dist/' + Project + '/', '') bucket.put_object_from_file(key, local) print('Send <' + key + '> Success') print('Sync OSS OK!')