为什么从本地机器上传到minio服务器时出现“权限被拒绝”?

问题描述 投票:0回答:1

这是我的代码:

# client: Minio
# upload local file in file_path to the minio server
client.fput_object(bucket_name, object_name, file_path)

但是当我运行代码时,它崩溃了,我确信发生“权限被拒绝”的目录的所有者是我,并且我已经以管理员权限运行了

pycharm64.exe

..\hydroprivatedata\minio_api.py:29: in minio_upload_csv
    client.fput_object(bucket_name, object_name, file_path)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

self = <minio.api.Minio object at 0x000001FC32B9A3E0>
bucket_name = 'forestbat-private', object_name = 'driver_data_site24.csv'
file_path = 'C:\\Users\\Administrator\\.hydrodataset\\cache\\forestbat_test'
content_type = 'application/octet-stream', metadata = None, sse = None
progress = None, part_size = 0, num_parallel_uploads = 3, tags = None
retention = None, legal_hold = False

    def fput_object(self, bucket_name, object_name, file_path,
                    content_type="application/octet-stream",
                    metadata=None, sse=None, progress=None,
                    part_size=0, num_parallel_uploads=3,
                    tags=None, retention=None, legal_hold=False):
        """
        Uploads data from a file to an object in a bucket.
    
        :param bucket_name: Name of the bucket.
        :param object_name: Object name in the bucket.
        :param file_path: Name of file to upload.
        :param content_type: Content type of the object.
        :param metadata: Any additional metadata to be uploaded along
            with your PUT request.
        :param sse: Server-side encryption.
        :param progress: A progress object
        :param part_size: Multipart part size
        :param num_parallel_uploads: Number of parallel uploads.
        :param tags: :class:`Tags` for the object.
        :param retention: :class:`Retention` configuration object.
        :param legal_hold: Flag to set legal hold for the object.
        :return: :class:`ObjectWriteResult` object.
    
        Example::
            # Upload data.
            result = client.fput_object(
                "my-bucket", "my-object", "my-filename",
            )
    
            # Upload data with metadata.
            result = client.fput_object(
                "my-bucket", "my-object", "my-filename",
                metadata={"My-Project": "one"},
            )
    
            # Upload data with tags, retention and legal-hold.
            date = datetime.utcnow().replace(
                hour=0, minute=0, second=0, microsecond=0,
            ) + timedelta(days=30)
            tags = Tags(for_object=True)
            tags["User"] = "jsmith"
            result = client.fput_object(
                "my-bucket", "my-object", "my-filename",
                tags=tags,
                retention=Retention(GOVERNANCE, date),
                legal_hold=True,
            )
        """
    
        file_size = os.stat(file_path).st_size
>       with open(file_path, "rb") as file_data:
E       PermissionError: [Errno 13] Permission denied: 'C:\\Users\\Administrator\\.hydrodataset\\cache\\forestbat_test'

..\venv\lib\site-packages\minio\api.py:997: PermissionError

当我从minio服务器下载文件到本地目录时,就成功了。

那么如何解决这个问题呢?

python-3.x permissions io minio
1个回答
0
投票

请确保您有适当的权限(WRITE)将数据上传到存储桶中

要允许在存储桶中上传,您的存储桶策略应授予 s3:PutObject 权限

© www.soinside.com 2019 - 2024. All rights reserved.