简单上传

目录

从内存中上传

从文件中上传

简单上传指的是使用OSS API中的PutObject方法上传单个文件(Object),本文主要介绍通过Python SDK进行简单上传。

简单上传分为从内存中上传和从文件中上传。

上传文件主要可以设置的属性有:

  • 元数据
  • 访问权限

从内存中上传

简答上传可以使用内存中的数据作为OSS文件的数据源。以下代码用于从内存中简单上传:

            import oss

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'
            # <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
            ObjectName = '<your_object_name>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 使用密钥, 节点来初始化储存信息,这里以华北三为案例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 从内存中进行简单上传
            # 内存上传支持字符串、Byte、Unicode、网络流等。
            # 上传Byte
            # bucket.put_object('testUpload.txt', b'Welcome to Inspur Cloud')
            # 上传Unicode
            # bucket.put_object('testUpload.txt', u'Welcome to Inspur Cloud')
            # 上传网络流
            # input = requests.get('http://www.inspur.com')
            # bucket.put_object('testUpload.txt', input)
            # 上传字符串
            bucket.put_object('testUpload.txt', '欢迎来到浪潮云')

从文件中上传

简单上传可以使用本地文件作为OSS文件的数据源。以下代码用于从文件中简单上传:

            import oss
            import os

            # 设置基本信息
            APIKey = '<your_API_key>'
            APIKeySecrete = '<your_API_key_secrete>'
            EndPoint = 'oss.cn-north-3.inspurcloudoss.com'
            BucketName = '<your_bucket_name>'
            # <your_object_name>需包含目录及文件名后缀,如:“img/my_photo.png”
            ObjectName = '<your_object_name>'
            # <your_local_file_path>为绝对路径,需包含文件后缀名,若无此文件则创建新文件。如:“D:/recv/file.txt”
            LocalFilePath = '<your_local_file_path>'

            # 使用API密钥来获取管理权限,获得方式在控制台右上角用户头像->API密钥
            auth = oss.Auth(APIKey, APIKeySecrete)

            # 使用密钥, 节点来初始化储存信息,这里以华北三为案例
            bucket = oss.Bucket(auth, EndPoint, BucketName)

            # 需要以二进制方式打开文件
            with open(LocalFilePath, 'rb') as f:
                # 从头开始文件读写,使用tell()来返回当前位置
                f.seek(0, os.SEEK_SET)
                cursor = f.tell()

                # 进行上传
                bucket.put_object(ObjectName, f)