【问题标题】:Error while downloading files from IBM serverless function从 IBM 无服务器功能下载文件时出错
【发布时间】:2019-10-09 13:02:19
【问题描述】:

我在 IBM 云对象存储桶中有一些文件。我需要使用无服务器功能将这些文件下载到本地存储。 我使用 Python 进行了尝试,但遇到了问题。 我也想问一下在哪里提供本地存储文件夹的路径。

如果添加一些代码将是一个很大的帮助。 谢谢你。

我试过了:

import ibm_boto3

from ibm_botocore.client import Config

import os,os.path

import pathlib

import glob


import requests


    cos = ibm_boto3.client(service_name='s3',

    ibm_api_key_id='my-api-key',

    ibm_service_instance_id='id-from-service-credential',

    config=Config(signature_version='oauth'),

    endpoint_url='https://s3.eu-gb.cloud-object-storage.appdomain.cloud')


try:

res = cos.download_file(Key='abc.txt',Bucket='cloud-college-bucket0',Filename='abc.txt')


except Exception as e:

    print(Exception, e)

else:

    print('File Downloaded')

遇到的错误是:

"error": "文件已下载\n/usr/local/lib/python3.7/site-packages/ibm_botocore/vendored/requests/api.py:67: DeprecationWarning: You are using the post() function from 'ibm_botocore.vendored.requests'。这不是 ibm_botocore 中的公共 API,将来会被删除。另外,这个版本的 requests 已经过时了。我们建议您安装 requests 包,直接 'import requests',然后请改用 requests.post() 函数。\n DeprecationWarning\nTraceback(最近一次调用最后一次):\n 文件 \"/action/1/src/exec__.py\",第 43 行,\n from main__ import main as main\nImportError: cannot import name 'main' from 'main__' (/action/1/src/main__.py)\n" }

【问题讨论】:

  • 有什么建议吗?

标签: python ibm-cloud object-storage


【解决方案1】:

据我所知,没有直接的方法可以实现这个用例。您可以检查下面的指针来修复上面的代码

对于该错误,您可以使用 Python 运行时 here 检查支持的包列表,然后再将它们用于您的操作。

如果您有不在列表中的包,您可以随时package Python code with a virtual environment in .zip filesPackaging code in Docker images

您可能必须使用S3 API to download the object

【讨论】:

  • 嗨 @Vidyasager 我正在使用 ibmcloudsql lib,我正在虚拟环境中测试我的应用程序,看起来不错并给出了预期的结果。但是,当我通过 CLI 推送 .zip 文件后调用操作时,它会给出错误:“错误”:“操作未初始化并意外退出。”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-04
  • 1970-01-01
  • 1970-01-01
  • 2015-03-21
  • 2015-02-26
相关资源
最近更新 更多