s3.py 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273
  1. from magic_pdf.data.data_reader_writer.multi_bucket_s3 import (
  2. MultiBucketS3DataReader, MultiBucketS3DataWriter)
  3. from magic_pdf.data.schemas import S3Config
  4. class S3DataReader(MultiBucketS3DataReader):
  5. def __init__(
  6. self,
  7. default_prefix_without_bucket: str,
  8. bucket: str,
  9. ak: str,
  10. sk: str,
  11. endpoint_url: str,
  12. addressing_style: str = 'auto',
  13. ):
  14. """s3 reader client.
  15. Args:
  16. default_prefix_without_bucket: prefix that not contains bucket
  17. bucket (str): bucket name
  18. ak (str): access key
  19. sk (str): secret key
  20. endpoint_url (str): endpoint url of s3
  21. addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
  22. refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
  23. """
  24. super().__init__(
  25. f"{bucket}/{default_prefix_without_bucket}"
  26. [
  27. S3Config(
  28. bucket_name=bucket,
  29. access_key=ak,
  30. secret_key=sk,
  31. endpoint_url=endpoint_url,
  32. addressing_style=addressing_style,
  33. )
  34. ],
  35. )
  36. class S3DataWriter(MultiBucketS3DataWriter):
  37. def __init__(
  38. self,
  39. default_prefix_without_bucket: str,
  40. bucket: str,
  41. ak: str,
  42. sk: str,
  43. endpoint_url: str,
  44. addressing_style: str = 'auto',
  45. ):
  46. """s3 writer client.
  47. Args:
  48. default_prefix_without_bucket: prefix that not contains bucket
  49. bucket (str): bucket name
  50. ak (str): access key
  51. sk (str): secret key
  52. endpoint_url (str): endpoint url of s3
  53. addressing_style (str, optional): Defaults to 'auto'. Other valid options here are 'path' and 'virtual'
  54. refer to https://boto3.amazonaws.com/v1/documentation/api/1.9.42/guide/s3.html
  55. """
  56. super().__init__(
  57. f"{bucket}/{default_prefix_without_bucket}"
  58. [
  59. S3Config(
  60. bucket_name=bucket,
  61. access_key=ak,
  62. secret_key=sk,
  63. endpoint_url=endpoint_url,
  64. addressing_style=addressing_style,
  65. )
  66. ],
  67. )